在分享之前先给大家看两个异常,应该说这一类的异常还是很常见的,主要原因是jar包冲突
异常1:
java.lang.NoSuchFieldError: INSTANCE at org.hibernate.type.BasicTypeRegistry.(BasicTypeRegistry.java:94) at org.hibernate.type.TypeResolver. (TypeResolver.java:59) at org.hibernate.cfg.Configuration. (Configuration.java:250) at org.hibernate.cfg.Configuration. (Configuration.java:302) at org.hibernate.cfg.AnnotationConfiguration. (AnnotationConfiguration.java:108) at org.hibernate.ejb.Ejb3Configuration. (Ejb3Configuration.java:107) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34) at org.lxh.util.JpaUtil. (JpaUtil.java:10) at org.lxh.test.Test.testInsert(Test.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
这个异常主要出现在hibernate3.6或更高版本,解决办法是删除hibernate-annotations.jar和hibernate-commons-annotations.jar
因为hibernate3.6包里已经包含以上两包了
异常2:
Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1912)
at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:796)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:4035)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3989)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1398)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 65 more
该异常也是jar包冲突导致,主要还是出现在hibernate3.6或更高版本,解决办法是删除ejb3-persistence.jar
一 一对多关联关系
1. 部门的员工的实体类
package org.lxh.info; import java.util.*; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import java