Struts をフロントエンドとして使用し、Spring を IOC に使用し、休止状態 + c3p0 をデータソース プーリングとして使用しています。永続レイヤーにannotationsessionfactory Beanと@Transactionアノテーションを使用しています。これはすべて春豆を使用して管理されます。
ただし、永続層メソッドで @transactional アノテーションを使用していない場合でも、データは保存されます。
例:
public interface CollegeHibernate {
CollegeWTO saveCollege(CollegeWTO collegeWTO);
}
public class CollegeHibernateImpl extends HibernateTemplate implements CollegeHibernate{
public CollegeWTO saveCollege(CollegeWTO collegeWTO) {
College college = CollegeHelper.CollegeWTO_to_Model(new College(), collegeWTO);
}
}
豆は
<bean id="collegeHibernate" class="com.velos.p1b.persistence.college.impl.CollegeHibernateImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
セッションファクトリーはスプリングアノテーションファクトリーであり、トランザクションはこのように管理されます。
<tx:annotation-driven transaction-manager="transactionManager" />
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" read-only="true" rollback-for="java.lang.Throwable" />
</tx:attributes>
</tx:advice>
このメソッドはデータを保存しますが、トランザクション化はまったくしません。私によると、それは例外を経る必要があります。Oracle 11g と j-boss 4.2 サーバーを使用しています。私が考えているのは、私の取引が管理されていないということです。どんな例でも大歓迎です。