主键引起的1062错误主键重复Hibernate
来源:互联网 发布:百度学术 知乎 编辑:程序博客网 时间:2024/06/06 12:39
昨晚在后台看到出现sql错误,观察是SQL 1062既主键重复无法插入到数据库。
查看代码,发现没有问题,之后想到是因为在项目中部署了两个工程但是他们又共用了一张表并且对这张表有DML操作。
解决办法:1:将多个字段设置为主键,使其唯一(只是数据库解决了)就是创建联合主键达到主键唯一(要创建联合主键则相应字段要设置为非NULL)。
查看后台是成功插入数据了。过了不久出现不能update了再查原因,发现是程序里的update是where id=?因为现在id不是主键了所以有重复不能根据id更新了,最后决定该程序
2:最后的办法:将程序改为 @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") @Column(name = "id", length=32)数据库还是用id为主键,因为UUID被编码成一个32位16进制数字的字符串。UUID包含:IP地址、JVM启动时间、系统时间(精确到1/4秒)和一个计数器值(JVM中唯一)
所以这样id又唯一了。
最后想说碰到问题先查原因再一步一步修改,别着急。
引用了http://www.cnblogs.com/flyoung2008/articles/2165759.html
0 0
- 主键引起的1062错误主键重复Hibernate
- 【项目课题】Hibernate的一对一关系联合主键ID类不同而引起的错误
- mysql主从报1062-主键重复错误
- hibernate 主键指定不当造成的错误
- 删除索引主键约束引起ORA-02429错误的解决方法
- Hibernate主键生成策略错误
- Hibernate的主键机制
- Hibernate主键的困惑
- hibernate的主键问题
- hibernate的自定义主键
- Hibernate的主键生成
- Hibernate的联合主键
- hibernate的联合主键
- hibernate的主键策略
- hibernate的联合主键
- hibernate的主键和复合主键
- 利用主键重复的错误返回告知用户
- 更新数据库Sequence,解决数据库恢复主键重复的错误
- Merge Two Sorted Lists
- 【Android资料】Android软键盘显示模式总结
- eclipse 配置SVN步骤
- 剑指Offer面试题31(java版):连续子数组的最大和
- 记忆化dp hdu1978
- 主键引起的1062错误主键重复Hibernate
- BestCoder Round #50 (div.2) 1001
- hdu 5215 判断奇偶环
- java多文本框使用右键弹出菜单复制粘贴剪切功能实现
- 【Android UI】ViewPage
- 深入理解Aop编程思想
- Cocos2d-x学习笔记(五)—— 常见UI界面(未完全)
- C++面向对象高级开发No.1 - Class Without Pointer
- leetcode 105 —— Construct Binary Tree from Preorder and Inorder Traversal