为了账号安全,请及时绑定邮箱和手机立即绑定

如何在休眠中具有一对多或多对一关系的两个表中一一插入数据

如何在休眠中具有一对多或多对一关系的两个表中一一插入数据

繁星点点滴滴 2021-06-14 17:27:49
我的问题是成功添加了一行,但是当添加更多数据时,它显示下面给出的错误。有重复的条目,但我想为同一个学生插入两个笔记本电脑数据。我是休眠的初学者,请指导我先生。Exception in thread "main" org.hibernate.exception.ConstraintViolationException: could not execute statementat org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:72)at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:190)at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:62)at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3124)at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3587)at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:103)at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:453)at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:345)at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:350
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

我建议@GeneratedValue在 field 上使用注释id。您的错误是由于违反了 field 的主键约束idid理想情况下,您必须避免在保存对象时进行设置。

如果您想每次向不同的学生添加相同的笔记本电脑对象,请在笔记本电脑实体类中初始化您的字段,添加一个构造函数并每次在为任何学生设置笔记本电脑时调用该构造函数。


查看完整回答
反对 回复 2021-06-17
  • 2 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信