谁运行过尚学堂OA的项目,我初始化有误!!!

jnkaixin2009 2009-12-26 10:37:03
我原先用的oracle的数据库,初始化后,没有错误。但是因为各种原因,我现在把数据库改成了mysql,至此,只是修改了一下了一下项目名称,hibernate.cfg.xml还有build.xml中的关于数据库连接的一些设置,然后拷贝进来了mysql的驱动包,
做完权限管理进行初始化的时候老是报错;如下:(主键用的native,程序中没有乱码)

Hibernate: insert into T_Module (name, sn, url, orderNo, parentId) values (?, ?, ?, ?, ?)
10:30:10,828 INFO InitSystemDatasImpl:68 - 导入模块【个人办公】
Hibernate: insert into T_Module (name, sn, url, orderNo, parentId) values (?, ?, ?, ?, ?)
10:30:10,828 INFO InitSystemDatasImpl:68 - 导入模块【我的办公桌】
Hibernate: insert into T_Module (name, sn, url, orderNo, parentId) values (?, ?, ?, ?, ?)
10:30:10,828 WARN JDBCExceptionReporter:71 - SQL Error: 1062, SQLState: 23000
10:30:10,828 ERROR JDBCExceptionReporter:72 - Duplicate entry '????' for key 'name'
org.springframework.dao.DataIntegrityViolationException: could not insert: [com.djrj.oa.model.Module]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [com.djrj.oa.model.Module]
Caused by: org.hibernate.exception.ConstraintViolationException: could not insert: [com.djrj.oa.model.Module]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2093)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2573)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:47)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:180)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:108)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:625)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:622)
at com.djrj.oa.manager.impl.InitSystemDatasImpl.importModules(InitSystemDatasImpl.java:67)
at com.djrj.oa.manager.impl.InitSystemDatasImpl.importModules(InitSystemDatasImpl.java:69)
at com.djrj.oa.manager.impl.InitSystemDatasImpl.addOrUpdateInitDatas(InitSystemDatasImpl.java:45)
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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:203)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
at $Proxy7.addOrUpdateInitDatas(Unknown Source)
at manager.InitSystemDatasTest.testAddOrUpdateInitDatas(InitSystemDatasTest.java:14)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
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: Duplicate entry '????' for key 'name'
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1125)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:677)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1357)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1274)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1259)
at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:73)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
... 49 more
...全文
280 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
默默的偷学者 2010-03-19
  • 打赏
  • 举报
回复
我的也是这种问题
我把数据库编码改成UTF-8
然后运行
重新插入数据 网上搜的到数据库的插入文件,不过每个表也要改成UTF-8才显示
我的好了
默默的偷学者 2010-03-18
  • 打赏
  • 举报
回复
LZ
同样的问题
但是没找到答案
不知道你找到没
tartar2008 2010-03-04
  • 打赏
  • 举报
回复
解决了没? LZ我也在找解决的方法。 输出到后台的时候 都是中文啊
jnkaixin2009 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zl3450341 的回复:]
Caused by: java.sql.SQLException: Duplicate entry '????' for key 'name'
重复插入? 

引用 5 楼 crazylaa 的回复:
Duplicate entry '????' for key 'name'
怀疑是mysql的字符集不对,导致中文变乱码,你在name上有唯一索引,而所有中文都变????后,数据库认为是相同的。改下你的数据库编码至UTF-8

试试这个


[/Quote]
我的插入都是用的,解析完xml文件后。直接对象插入的啊、在用ORACLE数据库就没有问题,改成MYSQL就有问题啦,真奇怪了
jnkaixin2009 2009-12-26
  • 打赏
  • 举报
回复
有没有人遇到这种错误啊,我都找了2天了还没有找到。苦啊
zl3450341 2009-12-26
  • 打赏
  • 举报
回复
Caused by: java.sql.SQLException: Duplicate entry '????' for key 'name'
重复插入?

[Quote=引用 5 楼 crazylaa 的回复:]
Duplicate entry '????' for key 'name'
怀疑是mysql的字符集不对,导致中文变乱码,你在name上有唯一索引,而所有中文都变????后,数据库认为是相同的。改下你的数据库编码至UTF-8
[/Quote]
试试这个

crazylaa 2009-12-26
  • 打赏
  • 举报
回复
Duplicate entry '????' for key 'name'
怀疑是mysql的字符集不对,导致中文变乱码,你在name上有唯一索引,而所有中文都变????后,数据库认为是相同的。改下你的数据库编码至UTF-8
SambaGao 2009-12-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 warison2008 的回复:]
插入了重复的记录。
检查下这个表T_Module 的插入sql
[/Quote]

查看一下。
道光2008 2009-12-26
  • 打赏
  • 举报
回复
插入了重复的记录。
检查下这个表T_Module 的插入sql
「已注销」 2009-12-26
  • 打赏
  • 举报
回复
Caused by: java.sql.SQLException: Duplicate entry '????' for key 'name'
是不是主键重复了????

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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