我有一个休眠实体,其 ID 配置为
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
新元素的创建在第一次运行时可以正常工作。但是,如果我重新启动我的应用程序并取回记录,下次我尝试持久化此实体时,hibernate 会尝试使用未重新启动应用程序时生成的相同 ID。
我收到以下错误,当使用跟踪选项运行时,我能够看到该 ID 正在被重用
*Hibernate: 插入 org_myEntity (entitiyJID, entityName, id) 值 (?, ?, ?) org.hibernate.util.JDBCExceptionReporter
SQL 错误: 20000, SQLState: 23505 org.hibernate.util.JDBCExceptionReporter 该语句被中止,因为它会在“TABLE_NAME”上定义的“SQL120725164357680”标识的唯一或主键约束或唯一索引中导致重复键值。org.hibernate.event.def.AbstractFlushingEventListener
无法将数据库状态与会话 org.hibernate.exception.ConstraintViolationException 同步:无法*
顺便说一句,我使用的是 hibernate 3.3.2.GA、javax.persistance 2.0.0 和 Derby 10.5.1 数据库
有人知道我这一代可能出了什么问题,我该如何解决?