DerGrinsemann
Mitglied
Hallo!
Bei folgenden Code wird IMMER ein Update auf der DB durchgeführt und version um eins erhöht (Optimistische Sperre)! Warum? Ich klammere das ganze in einer Transaction (siehe Konfig) ! Aber die Transaktion wird schon beim "findPersonById" wieder geschlossen!
Bin für jeden Tipp dankbar!
Marco Markl
Bei folgenden Code wird IMMER ein Update auf der DB durchgeführt und version um eins erhöht (Optimistische Sperre)! Warum? Ich klammere das ganze in einer Transaction (siehe Konfig) ! Aber die Transaktion wird schon beim "findPersonById" wieder geschlossen!
Code:
logger.debug("********************* FIND");
Person person = this.personManager.findPersonById(personEditForm.getId());
logger.debug("********************* FIND ENDE");
logger.debug("********************* UPDATE");
this.personManager.updatePerson(person);
logger.debug("********************* UPDATE ENDE");
Code:
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="find*" propagation="REQUIRED" read-only="true"/>
<tx:method name="get*" propagation="REQUIRED" read-only="true"/>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="false">
<aop:advisor pointcut="execution(* at.brisk.jazz.manager.hibernate.PersonManager.*(..))" advice-ref="txAdvice"/>
</aop:config>
Code:
2007-06-05 12:33:18,935 DEBUG org.hibernate.impl.SessionImpl.afterTransactionCompletion(SessionImpl.java:422) - after transaction completion
2007-06-05 12:33:18,936 DEBUG at.brisk.jazz.controller.PersonEditController.onSubmit(PersonEditController.java:72) - ********************* FIND ENDE
2007-06-05 12:33:18,936 DEBUG at.brisk.jazz.controller.PersonEditController.onSubmit(PersonEditController.java:80) - ********************* UPDATE
Bin für jeden Tipp dankbar!
Marco Markl