已有101人关注
JAVA项目开发全程实录—03企业人事管理系统问题(急啊)
发表在Java图书答疑 2010-05-30
是否精华
版块置顶:
整个系统能够运行,但运行后出现了一个问题,即企业架构中可以添加子部门,也可以删除子部门,但是不能写入数据库,能麻烦老师解答下是怎么回事吗?
如能解答,非常感谢!!!
分享到:
精彩评论 4
柠檬草
学分:0 LV1
2010-05-31
沙发
您看看程序后台报错误信息没有,最好把错误信息贴出来,以便我们定位您的问题。
写代码难
学分:0 LV1
TA的每日心情
郁闷
2023-06-17 23:44:26
2010-06-01
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
您看看程序后台报错误信息没有,最好把错误信息贴出来,以便我们定位您的问题。
[/FIELDSET]

回复:
  非常谢谢明日科技老师的重视!因我不会用oracle数据库,我使用的mssqserver2000 sp4版本数据库,主要修改了hibernate配置文件,其余代码没作任何改动。整个程序基本能运行,但企业架构却不能同步更改或写入数据库,对添加子部门时出现的如下提示问题,迫切希望能得到明日科技老师的指教,非常感谢。

出现的提示为:
org.hibernate.exception.ConstraintViolationException: could not insert: [com.mwq.hibernate.mapping.TbDept]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.mwq.hibernate.BaseDao.updateObject(BaseDao.java:64)
at com.mwq.frame.system.FrameworkPanel$3.actionPerformed(FrameworkPanel.java:191)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'tb_dept' 中的标识列插入显式值。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2247)
... 37 more
柠檬草
学分:0 LV1
2010-06-02
地板
读者您好:
    这是由于违反了数据库中的约束条件导致的,"当 IDENTITY_INSERT 设置为 OFF 时,不能向表  中的标识列插入显式值。"表示当表的关键子设置为自动生成,那么你不能对它修改,说明这个表中的ID字段已经设置为自动增长了,所以在执行添加的时候需要将sql语句中添加子部门中添加的唯一标示的字段ID去掉就可以了,因为Oracle中是通过序列实现ID自增的,这点和SQL Server不同。
写代码难
学分:0 LV1
TA的每日心情
郁闷
2023-06-17 23:44:26
2010-06-04
4L
[FIELDSET][LEGEND]引自:3楼[/LEGEND]
读者您好:
    这是由于违反了数据库中的约束条件导致的,"当 IDENTITY_INSERT 设置为 OFF 时,不能向表  中的标识列插入显式值。"表示当表的关键子设置为自动生成,那么你不能对它修改,说明这个表中的ID字段已经设置为自动增长了,所以在执行添加的时候需要将sql语句中添加子部门中添加的唯一标示的字段ID去掉就可以了,因为Oracle中是通过序列实现ID自增的,这点和SQL Server不同。
[/FIELDSET]

回复:
    非常感谢明日科技老师的答疑解惑,这个问题已基本解决。非常感谢!!!
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照