在单元测试hibernate的一对多多对一映射遇到异常
来源:互联网 发布:矩阵的幂运算法则 编辑:程序博客网 时间:2024/05/17 23:55
在单元测试hibernate的一对多多对一映射遇到异常。以下分别是Customer.hbm.xml和Order.hmb.xml配置文件
<?xml version=“1.0”?>
<!DOCTYPE hibernate-mapping PUBLIC
“-//Hibernate/Hibernate Mapping DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”>
<hibernate-mapping package=“cn.test.oneToMany”>
<class name=“Customer” table=“customer”>
<id name=“id”>
<generator class=“native”></generator>
</id>
<property name=“name” type=“string” column=“name” length=“20”></property>
<set name=“orders”>
<key column=“customerId“></key>
<one-to-many class=“Order” />
</set>
</class>
</hibernate-mapping>
<?xml version=“1.0”?>
<!DOCTYPE hibernate-mapping PUBLIC
“-//Hibernate/Hibernate Mapping DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”>
<hibernate-mapping package=“cn.test.oneToMany”>
<class name=“Order” table=“order”>
<id name=“id”>
<generator class=“native”></generator>
</id>
<property name=“name” type=“string” column=“name”></property>
<many-to-one name=“customer” class=“Customer” column=“customerId”>
</many-to-one>
</class>
</hibernate-mapping>
错误信息如下:
org.hibernate.exception.SQLGrammarException: could not insert: [cn.test.oneToMany.Order]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2327)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2834)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at cn.test.oneToMany.App.testSave(App.java:45)
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:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘order (name, customerId) values (‘订单1’, null)’ at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
at com.mysql.jdbc.Util.getInstance(Util.java:383)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2113)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2049)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2034)
at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57)
… 39 more
错误原因:table名称order为关键字。
修改 table=“order_”即可。
- 在单元测试hibernate的一对多多对一映射遇到异常
- hibernate的一对多多对一映射SQLGrammarException异常
- Hibernate一对多多对一的相关配置和操作
- hibernate一对多多对多映射(注解)
- Hibernate的关系映射-------多对一与一对多
- hibernate的一对多和多对一关系映射
- Hibernate中一对多、多对一关系的映射
- hibernate里面的一对多和多对一映射
- 【Hibernate】的一对多与多对一映射
- Hibernate之"一对多多对一关联关系"
- Hibernate映射----(一对多,多对一)
- Hibernate一对多、多对一映射
- Hibernate中的cascade级联属性一对多多对一的增删改过程探讨
- hibernate中一对多多对一关系设计的理解(讲得好)
- Hibernate一对多多对多查询的排序
- Hibernate_映射_关联关系_一对多多对一映射1
- Hibernate_映射_关联关系_一对多多对一映射2、inverse属性
- Hibernate---一对多映射与多对一映射
- mac 当前位置打开终端
- 百度消息推送点击跳转到指定界面的实现
- HDU 1043 && POJ 1077 Eight bfs || 双向bfs || A*搜索
- SQL Server系统表sysobjects介绍与使用
- epoll总结
- 在单元测试hibernate的一对多多对一映射遇到异常
- Hololens开发 初级系列 -3 HoloWorld
- Stars(树状数组)
- Spring中@Autowired注解、@Resource注解的区别
- java判断URL协议自动补全HTTP(S)
- View学习(一)--坐标系
- c:if选择标签
- spring3.X MVC 在tomcat6和tomcat7加载静态资源的不同
- 单机多实例数据库搭建过程