Hibernate中的三个异常

异常一:

java.lang.ExceptionInInitializerError

       atcom.hibernate.service.UserServiceImpl.<init>(UserServiceImpl.java:11)

       atcom.hibernate.junit.UserTest.<init>(UserTest.java:12)

       atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

       atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

       atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

       atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)

       atorg.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:202)

       atorg.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:251)

       atorg.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

       atorg.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:248)

       atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)

       atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)

       atorg.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

       atorg.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

       atorg.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

       atorg.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

       atorg.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

       atorg.junit.runners.ParentRunner.run(ParentRunner.java:236)

       atorg.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)

       atorg.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Caused by: org.hibernate.HibernateException:Missing column: abc in hibernate.user

       atorg.hibernate.mapping.Table.validateColumns(Table.java:276)

       atorg.hibernate.cfg.Configuration.validateSchema(Configuration.java:1343)

       atorg.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139)

       atorg.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:378)

       atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)

       atcom.hibernate.dao.UserDaoImpl.<clinit>(UserDaoImpl.java:23)

       ...24 more

异常产生原因:

用validate验证,对于已存在的表,又加属性及与之对应的set和get方法,并在映射文件中声明了,但由于与原来的表结构相比发生了变化,所有抛异常

 

 

异常二:

java.lang.ExceptionInInitializerError

       atcom.hibernate.service.UserServiceImpl.<init>(UserServiceImpl.java:11)

       atcom.hibernate.junit.UserTest.<init>(UserTest.java:12)

       atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

       atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

       atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

       atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)

       atorg.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:202)

       atorg.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:251)

       atorg.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

       atorg.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:248)

       atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)

       atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)

       atorg.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

       atorg.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

       atorg.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

       atorg.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

       atorg.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

       atorg.junit.runners.ParentRunner.run(ParentRunner.java:236)

       atorg.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)

       atorg.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

       atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Caused by:org.hibernate.HibernateException: Unable to instantiate default tuplizer

[org.hibernate.tuple.entity.PojoEntityTuplizer]

       atorg.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:108)

       atorg.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)

       atorg.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)

       atorg.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)

       atorg.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)

       atorg.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)

       atorg.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)

       atorg.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)

       atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)

       atcom.hibernate.dao.UserDaoImpl.<clinit>(UserDaoImpl.java:23)

       ...24 more

Caused by:java.lang.reflect.InvocationTargetException

       atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

       atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

       atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

       atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)

       atorg.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105)

       ...33 more

Caused by:org.hibernate.PropertyNotFoundException: Could not find a getter for birthdayin class

com.hibernate.domain.User

       atorg.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:326)

       atorg.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:320)

       atorg.hibernate.mapping.Property.getGetter(Property.java:304)

       atorg.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:297)

       atorg.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:155)

       atorg.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)

       ...38 more

异常产生原因:

在User.java中定义了属性privateDate birthday;

在User.hbm.xml中声明了birthday:<propertyname="birthday"/>

但是在User.java中确没有写与birthday对应的set和get方法

 

 

异常三:

Exception in thread "main"java.lang.ExceptionInInitializerError

       atcom.hbsi.test.ManyToMany.add(ManyToMany.java:31)

       atcom.hbsi.test.ManyToMany.main(ManyToMany.java:21)

Caused by: org.hibernate.MappingException:An association from the table teacher_student refers to an unmapped class:com.hbsi.domain.teacher

       atorg.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1824)

       atorg.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1756)

       atorg.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1423)

       atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856)

       atcom.hbsi.hibernate.utils.HibernateUtil.<clinit>(HibernateUtil.java:19)

       ...2 more

此错误产生的原因是在Student.hbm.xml中

<setname="teachers" table="teacher_student">

       <keycolumn="student_id"></key>

       <many-to-manyclass="Teacher" column="teacher_id"/>

</set>

中将class="Teacher"中的Teacher写成了teacher,大小写的问题

除了这三个小异常以外,由于不认真而产生的异常还可能有很多,比如今天上午我自认为配置文件和映射文件中没有错误,但就是初始化的时候异常,看了半天才知道,原来是映射文件中在配置属性时,因为删了一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值