Announcement Announcement Module
Collapse
No announcement yet.
Other Hibernate DAO LazyInitializationExceptions Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Other Hibernate DAO LazyInitializationExceptions


    In my Web controller, I'm using a service that gets me User objects, like this:

    Code:
    bernard = system.getUser ("bernard");
    on the next line, I'm using this object as a parameter to another method call:

    Code:
    boolean granted = system.checkPermission (null, "/", ResourceNames.contactPermissions, bernard, CREATE);
    in the body of that method, I'm doing the following:

    Code:
    boolean checkPermission (...) {
      Collection groups = user.getGroups ();
      ...
      if (groups!=null) {
        for (Iterator it=groups.iterator(); it.hasNext(); )
    }
    the call to iterator() however, causes the LazyInitializationException.

    When, on the other hand, I "re-initialize" the reference to the User object prior to the user.getGroups() call, like this:

    Code:
    List users = session.find ("from fractals.psychos.core.system.entity.User user WHERE user.username=? AND user.password=?",
                  new Object [] {user.getUsername (), user.getPassword ()},
                  new net.sf.hibernate.type.Type [] {Hibernate.STRING, Hibernate.STRING});
    user = (User) users.iterator ().next();
    ...the exception isn't raised anymore.

    Looks like, two separated calls on a facade involve each a new Session...

    It's been over a week now that I fight this problem: this is way too much for a framework that's supposed to simplify my life!

    bernard

  • #2
    Unless you're using "open session in view" you need to get Hibernate to materialize any lazy relationships in your service layer, within the transaction.
    Looks like, two separated calls on a facade involve each a new Session...
    They will, if they are in different transactions. And the session will be closed by the time your web tier code is handing the persistent objects, if you're using the usual approach with transaction management around your service layer.

    What you're experiencing seems to be a normal consequence of Hibernate (or other ORM) lazy loading. However, please post your config (especially that showing your transaction configuration) if you're still puzzled.

    Comment


    • #3
      The following is a bit unclear to me:

      Unless you're using "open session in view" you need to get Hibernate to materialize any lazy relationships in your service layer, within the transaction.
      Have you got any idea of a solution to my problem: if I understand what you mean, what I'd really need is to setup transactions that span several calls to the service layer.

      I mean this is completely natural: have a service that sells fare tickets, another that sells concert tickets, and a last one that makes room reservations, all that has to be wrapped in a single transaction, to be commited at once when everything has been done. How to do that in Spring?

      here's my applicationContext.xml:

      [code:1:7257582252]<?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http&#58;//www.springframework.org/dtd/spring-beans.dtd">

      <beans>

      <!-- ========================= GENERAL DEFINITIONS ========================= -->

      <!-- Message source for this context, loaded from localized "messages_xx" files -->
      <bean id="messageSource" class="org.springframework.context.support.Resourc eBundleMessageSource">
      <property name="basename"><value>messages</value></property>
      </bean>

      <!-- Local DataSource that works in any environment -->
      <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverM anagerDataSource">
      <property name="driverClassName"><value>org.gjt.mm.mysql.Dri ver</value></property>
      <property name="username"><value>root</value></property>
      <property name="url"><value>jdbc&#58;mysql&#58;//localhost/psych-os2</value></property>
      </bean>

      <!-- Hibernate SessionFactory -->
      <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSess ionFactoryBean">
      <property name="dataSource"><ref local="dataSource"/></property>
      <property name="mappingResources">
      <list>
      <value>fractals/psychos/core/media/entity/Shape.hbm.xml</value>
      <value>fractals/psychos/core/media/entity/Position.hbm.xml</value>
      <value>fractals/psychos/core/metadata/entity/AbstractIdentifier.hbm.xml</value>
      <value>fractals/psychos/core/metadata/entity/AbstractTemporalEncoding.hbm.xml</value>
      <value>fractals/psychos/core/system/entity/Registry.hbm.xml</value>
      <value>fractals/psychos/core/metadata/entity/AbstractSpatialEncoding.hbm.xml</value>
      <value>fractals/psychos/core/metadata/dc/entity/RelationTerm.hbm.xml</value>
      <value>fractals/psychos/core/system/entity/AccessRights.hbm.xml</value>
      <value>fractals/psychos/core/system/entity/Resource.hbm.xml</value>
      <value>fractals/psychos/core/system/entity/Account.hbm.xml</value>
      <value>fractals/psychos/core/system/entity/Application.hbm.xml</value>
      <value>fractals/psychos/core/metadata/dc/entity/DateTerm.hbm.xml</value>
      <value>ubn/tv/lifestyle/entity/DJ.hbm.xml</value>
      <value>fractals/psychos/core/system/entity/UserGroup.hbm.xml</value>
      <value>fractals/psychos/core/i18n/entity/Translation.hbm.xml</value>
      <value>fractals/psychos/core/metadata/dc/entity/UserMetadata.hbm.xml</value>
      <value>fractals/psychos/core/i18n/entity/Label.hbm.xml</value>
      <value>fractals/psychos/core/system/entity/User.hbm.xml</value>
      <value>fractals/psychos/core/metadata/dc/entity/CoreMetadata.hbm.xml</value>
      </list>
      </property>
      <property name="hibernateProperties">
      <props>
      <prop key="hibernate.show_sql">true</prop>
      <prop key="hibernate.dialect">net.sf.hibernate.dialect.M ySQLDialect</prop>
      <prop key="hibernate.cache.use_query_cache">false</prop>
      <prop key="hibernate.cache.provider_class">net.sf.hibern ate.cache.EhCacheProvider</prop>
      <prop key="hibernate.cache.query_cache_factory">net.sf.h ibernate.cache.StandardQueryCacheFactory</prop>
      </props>
      </property>
      </bean>

      <!-- The Hibernate interceptor -->
      <bean id="hibernateInterceptor" class="org.springframework.orm.hibernate.Hibernate Interceptor">
      <property name="sessionFactory"><ref bean="sessionFactory"/></property>
      </bean>

      <!-- Transaction Manager -->
      <bean id="transactionManager" class="org.springframework.orm.hibernate.Hibernate TransactionManager">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Entity Transactional Interceptor -->
      <bean id="entityTransactionInterceptor" class="org.springframework.transaction.interceptor .TransactionInterceptor">
      <property name="transactionManager"><ref local="transactionManager"/></property>
      <property name="transactionAttributeSource">
      <value>
      fractals.psychos.core.metadata.entity.PredicateDao .*=PROPAGATION_REQUIRED
      ubn.tv.lifestyle.entity.AlbumDao.*=PROPAGATION_REQ UIRED
      fractals.psychos.core.metadata.entity.SpatialISOCo untryCodeDao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.media.entity.ShapeDao.*=PROP AGATION_REQUIRED
      ubn.tv.lifestyle.entity.UBNEventDao.*=PROPAGATION_ REQUIRED
      fractals.psychos.core.media.entity.PositionDao.*=P ROPAGATION_REQUIRED
      fractals.psychos.core.media.entity.VideoDao.*=PROP AGATION_REQUIRED
      fractals.psychos.core.metadata.entity.SpatialTGNCo deDao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.PerformerDao .*=PROPAGATION_REQUIRED
      fractals.psychos.core.media.entity.ThreeDDao.*=PRO PAGATION_REQUIRED
      fractals.psychos.core.media.entity.MediaDao.*=PROP AGATION_REQUIRED
      fractals.psychos.core.metadata.entity.SpatialPoint Dao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.system.entity.AppletDao.*=PR OPAGATION_REQUIRED
      ubn.tv.lifestyle.entity.ProductionLabelDao.*=PROPA GATION_REQUIRED
      fractals.psychos.core.system.entity.RegistryDao.*= PROPAGATION_REQUIRED
      fractals.psychos.core.metadata.dc.entity.RelationT ermDao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.system.entity.AccessRightsDa o.*=PROPAGATION_REQUIRED
      fractals.psychos.core.system.entity.ResourceDao.*= PROPAGATION_REQUIRED
      fractals.psychos.core.system.entity.AccountDao.*=P ROPAGATION_REQUIRED
      fractals.psychos.core.media.entity.VideoReferenceD ao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.system.entity.ApplicationDao .*=PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.RecurringEve ntDao.*=PROPAGATION_REQUIRED
      ubn.tv.lifestyle.entity.TrackDao.*=PROPAGATION_REQ UIRED
      fractals.psychos.core.ontology.entity.RecurringEve ntOccurenceDao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.metadata.dc.entity.DateTermD ao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.AddressDao.* =PROPAGATION_REQUIRED
      ubn.tv.lifestyle.entity.DJDao.*=PROPAGATION_REQUIR ED
      fractals.psychos.core.media.entity.RectangleDao.*= PROPAGATION_REQUIRED
      fractals.psychos.core.metadata.entity.TimePointDao .*=PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.PersonDao.*= PROPAGATION_REQUIRED
      fractals.psychos.core.system.entity.UserGroupDao.* =PROPAGATION_REQUIRED
      fractals.psychos.core.media.entity.ImageDao.*=PROP AGATION_REQUIRED
      fractals.psychos.core.i18n.entity.TranslationDao.* =PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.Organisation Dao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.metadata.dc.entity.UserMetad ataDao.*=PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.ActivityDao. *=PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.PlaceDao.*=P ROPAGATION_REQUIRED
      fractals.psychos.core.metadata.entity.PropertyDao. *=PROPAGATION_REQUIRED
      fractals.psychos.core.ontology.entity.EventDao.*=P ROPAGATION_REQUIRED
      fractals.psychos.core.metadata.entity.SpatialBoxDa o.*=PROPAGATION_REQUIRED
      fractals.psychos.core.media.entity.CircleDao.*=PRO PAGATION_REQUIRED
      fractals.psychos.core.media.entity.ImageGalleryDao .*=PROPAGATION_REQUIRED
      fractals.psychos.core.i18n.entity.LabelDao.*=PROPA GATION_REQUIRED
      fractals.psychos.core.metadata.entity.TimePeriodDa o.*=PROPAGATION_REQUIRED
      fractals.psychos.core.system.entity.UserDao.*=PROP AGATION_REQUIRED
      fractals.psychos.core.pim.entity.CalendarDao.*=PRO PAGATION_REQUIRED
      fractals.psychos.core.media.entity.AudioDao.*=PROP AGATION_REQUIRED
      fractals.psychos.core.media.entity.TextDao.*=PROPA GATION_REQUIRED
      fractals.psychos.core.metadata.dc.entity.CoreMetad ataDao.*=PROPAGATION_REQUIRED
      ubn.tv.lifestyle.entity.ClubDao.*=PROPAGATION_REQU IRED
      </value>
      </property>
      </bean>

      <!-- Predicate Entity Proxy -->
      <bean id="predicateDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="predicateDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Predi cateDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Predicate Entity Implementation -->
      <bean id="predicateDaoTarget" class="fractals.psychos.core.metadata.entity.Predi cateDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Album Entity Proxy -->
      <bean id="albumDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="albumDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>ubn.tv.lifestyle.entity.AlbumDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Album Entity Implementation -->
      <bean id="albumDaoTarget" class="ubn.tv.lifestyle.entity.AlbumDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- SpatialISOCountryCode Entity Proxy -->
      <bean id="spatialISOCountryCodeDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="spatialISOCountryCodeDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Spati alISOCountryCodeDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- SpatialISOCountryCode Entity Implementation -->
      <bean id="spatialISOCountryCodeDaoTarget" class="fractals.psychos.core.metadata.entity.Spati alISOCountryCodeDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Shape Entity Proxy -->
      <bean id="shapeDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="shapeDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.ShapeDao </value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Shape Entity Implementation -->
      <bean id="shapeDaoTarget" class="fractals.psychos.core.media.entity.ShapeDao Impl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- UBNEvent Entity Proxy -->
      <bean id="uBNEventDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="uBNEventDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>ubn.tv.lifestyle.entity.UBNEventDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- UBNEvent Entity Implementation -->
      <bean id="uBNEventDaoTarget" class="ubn.tv.lifestyle.entity.UBNEventDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Position Entity Proxy -->
      <bean id="positionDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="positionDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.Position Dao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Position Entity Implementation -->
      <bean id="positionDaoTarget" class="fractals.psychos.core.media.entity.Position DaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Video Entity Proxy -->
      <bean id="videoDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="videoDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.VideoDao </value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Video Entity Implementation -->
      <bean id="videoDaoTarget" class="fractals.psychos.core.media.entity.VideoDao Impl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- SpatialTGNCode Entity Proxy -->
      <bean id="spatialTGNCodeDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="spatialTGNCodeDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Spati alTGNCodeDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- SpatialTGNCode Entity Implementation -->
      <bean id="spatialTGNCodeDaoTarget" class="fractals.psychos.core.metadata.entity.Spati alTGNCodeDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Performer Entity Proxy -->
      <bean id="performerDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="performerDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Perfo rmerDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Performer Entity Implementation -->
      <bean id="performerDaoTarget" class="fractals.psychos.core.ontology.entity.Perfo rmerDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- ThreeD Entity Proxy -->
      <bean id="threeDDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="threeDDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.ThreeDDa o</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- ThreeD Entity Implementation -->
      <bean id="threeDDaoTarget" class="fractals.psychos.core.media.entity.ThreeDDa oImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Media Entity Proxy -->
      <bean id="mediaDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="mediaDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.MediaDao </value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Media Entity Implementation -->
      <bean id="mediaDaoTarget" class="fractals.psychos.core.media.entity.MediaDao Impl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- SpatialPoint Entity Proxy -->
      <bean id="spatialPointDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="spatialPointDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Spati alPointDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- SpatialPoint Entity Implementation -->
      <bean id="spatialPointDaoTarget" class="fractals.psychos.core.metadata.entity.Spati alPointDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- AbstractIdentifier Entity Proxy -->
      <bean id="abstractIdentifierDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="abstractIdentifierDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Abstr actIdentifierDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- AbstractIdentifier Entity Implementation -->
      <bean id="abstractIdentifierDaoTarget" class="fractals.psychos.core.metadata.entity.Abstr actIdentifierDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- AbstractTemporalEncoding Entity Proxy -->
      <bean id="abstractTemporalEncodingDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="abstractTemporalEncodingDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Abstr actTemporalEncodingDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- AbstractTemporalEncoding Entity Implementation -->
      <bean id="abstractTemporalEncodingDaoTarget" class="fractals.psychos.core.metadata.entity.Abstr actTemporalEncodingDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Applet Entity Proxy -->
      <bean id="appletDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="appletDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.AppletD ao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Applet Entity Implementation -->
      <bean id="appletDaoTarget" class="fractals.psychos.core.system.entity.AppletD aoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- ProductionLabel Entity Proxy -->
      <bean id="productionLabelDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="productionLabelDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>ubn.tv.lifestyle.entity.ProductionLabelDa o</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- ProductionLabel Entity Implementation -->
      <bean id="productionLabelDaoTarget" class="ubn.tv.lifestyle.entity.ProductionLabelDaoI mpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Registry Entity Proxy -->
      <bean id="registryDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="registryDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.Registr yDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Registry Entity Implementation -->
      <bean id="registryDaoTarget" class="fractals.psychos.core.system.entity.Registr yDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      <property name="userDao"><ref bean="userDao"/></property>
      </bean>

      <!-- AbstractSpatialEncoding Entity Proxy -->
      <bean id="abstractSpatialEncodingDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="abstractSpatialEncodingDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Abstr actSpatialEncodingDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- AbstractSpatialEncoding Entity Implementation -->
      <bean id="abstractSpatialEncodingDaoTarget" class="fractals.psychos.core.metadata.entity.Abstr actSpatialEncodingDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- RelationTerm Entity Proxy -->
      <bean id="relationTermDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="relationTermDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.dc.entity.Re lationTermDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- RelationTerm Entity Implementation -->
      <bean id="relationTermDaoTarget" class="fractals.psychos.core.metadata.dc.entity.Re lationTermDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- AccessRights Entity Proxy -->
      <bean id="accessRightsDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="accessRightsDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.AccessR ightsDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- AccessRights Entity Implementation -->
      <bean id="accessRightsDaoTarget" class="fractals.psychos.core.system.entity.AccessR ightsDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Resource Entity Proxy -->
      <bean id="resourceDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="resourceDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.Resourc eDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Resource Entity Implementation -->
      <bean id="resourceDaoTarget" class="fractals.psychos.core.system.entity.Resourc eDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      <property name="accessRightsDao"><ref bean="accessRightsDao"/></property>
      </bean>

      <!-- Account Entity Proxy -->
      <bean id="accountDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="accountDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.Account Dao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Account Entity Implementation -->
      <bean id="accountDaoTarget" class="fractals.psychos.core.system.entity.Account DaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- VideoReference Entity Proxy -->
      <bean id="videoReferenceDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="videoReferenceDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.VideoRef erenceDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- VideoReference Entity Implementation -->
      <bean id="videoReferenceDaoTarget" class="fractals.psychos.core.media.entity.VideoRef erenceDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Application Entity Proxy -->
      <bean id="applicationDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="applicationDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.Applica tionDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Application Entity Implementation -->
      <bean id="applicationDaoTarget" class="fractals.psychos.core.system.entity.Applica tionDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- RecurringEvent Entity Proxy -->
      <bean id="recurringEventDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="recurringEventDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Recur ringEventDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- RecurringEvent Entity Implementation -->
      <bean id="recurringEventDaoTarget" class="fractals.psychos.core.ontology.entity.Recur ringEventDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Track Entity Proxy -->
      <bean id="trackDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="trackDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>ubn.tv.lifestyle.entity.TrackDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Track Entity Implementation -->
      <bean id="trackDaoTarget" class="ubn.tv.lifestyle.entity.TrackDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- RecurringEventOccurence Entity Proxy -->
      <bean id="recurringEventOccurenceDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="recurringEventOccurenceDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Recur ringEventOccurenceDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- RecurringEventOccurence Entity Implementation -->
      <bean id="recurringEventOccurenceDaoTarget" class="fractals.psychos.core.ontology.entity.Recur ringEventOccurenceDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- DateTerm Entity Proxy -->
      <bean id="dateTermDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="dateTermDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.dc.entity.Da teTermDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- DateTerm Entity Implementation -->
      <bean id="dateTermDaoTarget" class="fractals.psychos.core.metadata.dc.entity.Da teTermDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Address Entity Proxy -->
      <bean id="addressDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="addressDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Addre ssDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Address Entity Implementation -->
      <bean id="addressDaoTarget" class="fractals.psychos.core.ontology.entity.Addre ssDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- DJ Entity Proxy -->
      <bean id="dJDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="dJDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>ubn.tv.lifestyle.entity.DJDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- DJ Entity Implementation -->
      <bean id="dJDaoTarget" class="ubn.tv.lifestyle.entity.DJDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Rectangle Entity Proxy -->
      <bean id="rectangleDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="rectangleDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.Rectangl eDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Rectangle Entity Implementation -->
      <bean id="rectangleDaoTarget" class="fractals.psychos.core.media.entity.Rectangl eDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- TimePoint Entity Proxy -->
      <bean id="timePointDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="timePointDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.TimeP ointDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- TimePoint Entity Implementation -->
      <bean id="timePointDaoTarget" class="fractals.psychos.core.metadata.entity.TimeP ointDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Person Entity Proxy -->
      <bean id="personDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="personDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Perso nDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Person Entity Implementation -->
      <bean id="personDaoTarget" class="fractals.psychos.core.ontology.entity.Perso nDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- UserGroup Entity Proxy -->
      <bean id="userGroupDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="userGroupDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.UserGro upDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- UserGroup Entity Implementation -->
      <bean id="userGroupDaoTarget" class="fractals.psychos.core.system.entity.UserGro upDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Image Entity Proxy -->
      <bean id="imageDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="imageDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.ImageDao </value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Image Entity Implementation -->
      <bean id="imageDaoTarget" class="fractals.psychos.core.media.entity.ImageDao Impl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Translation Entity Proxy -->
      <bean id="translationDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="translationDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.i18n.entity.Translati onDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Translation Entity Implementation -->
      <bean id="translationDaoTarget" class="fractals.psychos.core.i18n.entity.Translati onDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Organisation Entity Proxy -->
      <bean id="organisationDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="organisationDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Organ isationDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Organisation Entity Implementation -->
      <bean id="organisationDaoTarget" class="fractals.psychos.core.ontology.entity.Organ isationDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- UserMetadata Entity Proxy -->
      <bean id="userMetadataDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="userMetadataDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.dc.entity.Us erMetadataDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- UserMetadata Entity Implementation -->
      <bean id="userMetadataDaoTarget" class="fractals.psychos.core.metadata.dc.entity.Us erMetadataDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Activity Entity Proxy -->
      <bean id="activityDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="activityDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Activ ityDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Activity Entity Implementation -->
      <bean id="activityDaoTarget" class="fractals.psychos.core.ontology.entity.Activ ityDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Place Entity Proxy -->
      <bean id="placeDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="placeDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Place Dao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Place Entity Implementation -->
      <bean id="placeDaoTarget" class="fractals.psychos.core.ontology.entity.Place DaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Property Entity Proxy -->
      <bean id="propertyDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="propertyDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Prope rtyDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Property Entity Implementation -->
      <bean id="propertyDaoTarget" class="fractals.psychos.core.metadata.entity.Prope rtyDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Event Entity Proxy -->
      <bean id="eventDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="eventDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.ontology.entity.Event Dao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Event Entity Implementation -->
      <bean id="eventDaoTarget" class="fractals.psychos.core.ontology.entity.Event DaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- SpatialBox Entity Proxy -->
      <bean id="spatialBoxDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="spatialBoxDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Spati alBoxDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- SpatialBox Entity Implementation -->
      <bean id="spatialBoxDaoTarget" class="fractals.psychos.core.metadata.entity.Spati alBoxDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Circle Entity Proxy -->
      <bean id="circleDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="circleDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.CircleDa o</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Circle Entity Implementation -->
      <bean id="circleDaoTarget" class="fractals.psychos.core.media.entity.CircleDa oImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- ImageGallery Entity Proxy -->
      <bean id="imageGalleryDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="imageGalleryDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.ImageGal leryDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- ImageGallery Entity Implementation -->
      <bean id="imageGalleryDaoTarget" class="fractals.psychos.core.media.entity.ImageGal leryDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Label Entity Proxy -->
      <bean id="labelDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="labelDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.i18n.entity.LabelDa o</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Label Entity Implementation -->
      <bean id="labelDaoTarget" class="fractals.psychos.core.i18n.entity.LabelDaoI mpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      <property name="translationDao"><ref bean="translationDao"/></property>
      </bean>

      <!-- TimePeriod Entity Proxy -->
      <bean id="timePeriodDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="timePeriodDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.TimeP eriodDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- TimePeriod Entity Implementation -->
      <bean id="timePeriodDaoTarget" class="fractals.psychos.core.metadata.entity.TimeP eriodDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- User Entity Proxy -->
      <bean id="userDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="userDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.system.entity.UserDao </value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- User Entity Implementation -->
      <bean id="userDaoTarget" class="fractals.psychos.core.system.entity.UserDao Impl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Calendar Entity Proxy -->
      <bean id="calendarDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="calendarDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.pim.entity.CalendarDa o</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- Calendar Entity Implementation -->
      <bean id="calendarDaoTarget" class="fractals.psychos.core.pim.entity.CalendarDa oImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- AbstractObject Entity Proxy -->
      <bean id="abstractObjectDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="abstractObjectDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.metadata.entity.Abstr actObjectDao</value>
      </property>
      <property name="interceptorNames">
      <list>
      <value>entityTransactionInterceptor</value>
      <value>hibernateInterceptor</value>
      </list>
      </property>
      </bean>

      <!-- AbstractObject Entity Implementation -->
      <bean id="abstractObjectDaoTarget" class="fractals.psychos.core.metadata.entity.Abstr actObjectDaoImpl">
      <property name="sessionFactory"><ref local="sessionFactory"/></property>
      </bean>

      <!-- Audio Entity Proxy -->
      <bean id="audioDao" class="org.springframework.aop.framework.ProxyFact oryBean">
      <property name="target"><ref bean="audioDaoTarget"/></property>
      <property name="proxyInterfaces">
      <value>fractals.psychos.core.media.entity.AudioDao </value>
      </property>
      <property name="interceptorNames">

      Comment


      • #4
        Have you got any idea of a solution to my problem: if I understand what you mean, what I'd really need is to setup transactions that span several calls to the service layer.

        I mean this is completely natural: have a service that sells fare tickets, another that sells concert tickets, and a last one that makes room reservations, all that has to be wrapped in a single transaction, to be commited at once when everything has been done. How to do that in Spring?
        You should use a single service layer method that invokes other methods to do each task. The single service layer method should define a transaction. Transaction propagation will then take care of each individual method running in that transaction, even if those methods are themselves transactional to allow separate use.

        Comment


        • #5
          (if I may ask) how do I "define a transaction" ? and is it possible to do this in client code (i.e. in my web controller) which would completely close the case for me...

          thanks for your help. I feel relieved

          bernard

          Comment


          • #6
            Bernard,

            Check out chapter 7 of the reference manual for information of transaction management. You can use both a programmatic and declarative mechanism for defining transaction semantics and both are detailed in the reference manual.

            Rob

            Comment

            Working...
            X