Я использую Struts в качестве frontEnd и Spring для IOC и hibernate + c3p0 в качестве пула источников данных.Я использую bean-компонент annotationsessionfactory и аннотацию @Transaction для своего постоянного слоя.все это управляется с помощью Spring Beans.
, но мои данные сохраняются также, если я не использую аннотацию @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 is
<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>
Этот метод сохраняет данные, но я вообще не делаю их транзакционными.По-моему, это должно происходить через исключение.Я использую оракул 11g и сервер j-boss 4.2.Я думаю, что моей транзакцией не управляют.Любой пример приветствуется.