向数据库插入数据时报错Duplicate entry '0' for key 'PRIMARY'

Scaarf 2018-05-05 12:51:37
数据库表


用hibernate级联向MySQL中的town表插入两条数据时,就报错Duplicate entry '0' for key 'PRIMARY',插入一条就没问题

测试代码

//级联添加
@Test
public void test2(){
Session session=SessionUtil.getSession();
Transaction tr =session.beginTransaction();

Town town1=new Town("武汉1区2");
Town town2=new Town("武汉2区2");
City city=new City("武汉2");
city.getTownList().add(town1);
city.getTownList().add(town2);

session.save(city);
tr.commit();
session.close();

}
...全文
1612 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Scaarf 2018-05-15
  • 打赏
  • 举报
回复
找到原因了,因为我映射文件中映射集合时作死用了list标签映射,list标签需要额外定义一列来维护顺序,而我将主键列指定为维护集合中元素顺序的列了,所以就。。。。。
QWERT4745 2018-05-07
  • 打赏
  • 举报
回复
检查主键生成策略,应该是没有配置好
幽饮烛 2018-05-07
  • 打赏
  • 举报
回复
Town 实体写错了。没有配置 @Id
Scaarf 2018-05-05
  • 打赏
  • 举报
回复
而且看日志里面,town对象的id永远都是9和10.。。。。。。

67,515

社区成员

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

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