hibernate往mysql中插入数据

gxfcome 2011-08-11 09:10:51
	    	System.out.println(functionTable.getFt_describe()  +  "    " + functionTable.getFt_id() + "   " + functionTable.getFt_name() + "    " + functionTable.getFt_page());
session.save(functionTable);

functionTable是一个类的对象有四个属性,对应数据库中的四个字段。通过输出在保存之前输出打印四个属性值,都有值。
但执行到save方法时就出错了
异常:
0 F0111 sfefse fsfef
Hibernate: insert into functiontable (ft_name, ft_describe, ft_page) values (?, ?, ?)
2011-08-11 08:48:44 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 1364, SQLState: HY000 -(71)
2011-08-11 08:48:44 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] Field 'ft_id' doesn't have a default value -(72)
org.hibernate.exception.GenericJDBCException: could not insert: [edu.usc.vo.Functiontable]
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1777)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2178)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:34)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:240)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
at edu.usc.dao.impl.FunctionDAO.addFunctionTable(FunctionDAO.java:75)
at edu.usc.Test.RoleActionTest.testPreQueryRoleAction(RoleActionTest.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.sql.SQLException: Field 'ft_id' doesn't have a default value
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2926)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1120)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:675)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1162)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1079)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1064)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1759)
... 35 more
2011-08-11 08:48:44 [edu.usc.dao.impl.FunctionDAO]-[WARN] 方法[addRightTable] 抛出异常[org.hibernate.exception.GenericJDBCException: could not insert: [edu.usc.vo.Functiontable]]。 -(84)
...全文
845 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
okin2014 2013-06-11
  • 打赏
  • 举报
回复
引用 6 楼 c19354837 的回复:
最恨这种帖子了,一开始提出问题,后来自己说解决了,但又不给出方法,然后就结贴了.....
c19354837 2013-04-12
  • 打赏
  • 举报
回复
最恨这种帖子了,一开始提出问题,后来自己说解决了,但又不给出方法,然后就结贴了.....
roger_kaikai 2012-05-13
  • 打赏
  • 举报
回复
请问是怎么解决的?
gxfcome 2011-08-11
  • 打赏
  • 举报
回复
已经解决
gxfcome 2011-08-11
  • 打赏
  • 举报
回复
不知道怎么回事,我把hql语句打印出来 insert into functiontable (ft_name, ft_describe, ft_page) values (?, ?, ?)不是Hibernate: insert into functiontable (ft_name, ft_describe, ft_page, ft_id) values (?, ?, ?, ?)。
gxfcome 2011-08-11
  • 打赏
  • 举报
回复
恩,谢谢提醒
窗外雨潇潇 2011-08-11
  • 打赏
  • 举报
回复
解决了就好。有编程方面的问题,最好到相应的编程版块去问,可以得到更好的解答

18,124

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧