编程的过程免不了遇到各种错误,各种问题,而遇到问题,解决问题的这个过程我认为是最让人兴奋的事情。越棘手的问题,解决以后带来的快感也越大。当一个问题你搞了一下午或者一天,甚至几天,当你解决的那一刻你会觉得你又获得了重生。甚至会感觉此时此刻整个世界都是你的。
啊哦,扯的有点远了。言归正传,今天我们要说的是关于Hibernate的一些常见错误。大家都知道Java项目更新一个版本可能与之前的版本有很大的差别,变化有时会很大。比如struts1和struts2,再比如Spring3.x由原来的一个jar包拆分成了多个jar包。因此有时候版本冲突的问题会给我们带来很大的麻烦。下面我们就说说使用Hibernate4.3.x需要注意的几点。
**错误一**
错误信息:javax.persistence.Table.indexes([Ljavax/persistence/Index
原因:Hibernate4.3不支持@table(name="tablename")
解决方案:使用@entity(name="tablename")代替@table(name="tablename")
**错误二**
错误信息:javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey
原因:Hibernate4.3在多对一映射的时候不能使用@JoinColumn
解决方案:只写@ManyToOne
**错误三**
错误信息:javax.persistence.OneToMany.orphanRemoval()Z
原因:javaee、ejb或junit的jar包与hibernate-jpa-2.0-api-1.0.0.Final.jar冲突
解决方案:查看是否存在以上jar包,如果存在,去掉即可
有人说错误一可能是个bug,但是目前还没有一个定论。错误二如果还有对应的@OneToMany,那么就在该处@JoinColumn(name="对应实体_id")。
以上是近期在项目中遇到的一些问题,写出来跟大家分享一下,希望可以帮到一些人,欢迎大家补充,我会将大家的反馈更新到博文中。