Spring,JPA,Hibernate 3和4
我在我的项目中使用Spring(3.2.4.RELEASE)和Hibernate(4.2.8.Final),并使用JPA配置。
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
...
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
...
</bean>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
我使用下面的hibernate乐观锁定版本控制机制。
@Entity
public class Entity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Version
@Generated(GenerationTime.ALWAYS)
private int version;
}
我的问题是,当我更新错误版本的实体,为什么它是抛出
org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException
不
org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException
?
spring-orm-3.2.4.RELEASE包含org.springframework.orm.hibernate3。*和org.springframework.orm.hibernate4。*的包。
因此,即使您在项目库中使用hibernate-4.2.8.Final.jar,当您使用弹簧数据jpa时,也可以在任何错误的DB操作上将所有检查的异常转换为未经检查的(运行时)hibernate异常。HibernateExceptionTranslator用于org .springframework.orm.hibernate4.HibernateExceptionTranslator。
如果您希望使用3.0,请确保您在bean配置xml文件中使用了org.springframework.orm.hibernate3.HibernateExceptionTranslator。
链接地址: http://www.djcxy.com/p/89593.html上一篇: Spring, JPA, Hibernate 3 vs 4
下一篇: Spring Data Rest