hibernate - 休眠分离实体错误 - 每个环境的不同结果
问题描述
我们有一个 Java 后端应用程序(使用 Java 9 创建),我们目前在通过 Hibernate 插入表记录时遇到这个问题。
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist:
问题是,这只发生在在 UAT 环境中插入我们的表时。在 SIT 和 DEV 数据库中执行相同的插入时,不会发生这种情况。我们已经验证了 UAT 和 SIT/DEV 中的代码是相同的,并且还验证了表结构是相同的。还有什么可能导致此异常?
下面是我们使用的实体类的片段:
@Entity
@Table(name = "SOME_TABLE")
public class SomeTable {
@Id
@Column(name = "SOME_TABLE_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "someTableSeq")
@SequenceGenerator(name = "someTableSeq", sequenceName = "SOME_TABLE_SEQ",
allocationSize = 1)
private Long id;
@Column(name = "FIELD_ONE")
private String fieldOne;
@Column(name = "FIELD_TWO")
private String fieldTwo;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATED_DT")
private Date createdDt;
Settings:
hibernate-core version: 5.2.10
hibernate-jpa version: 2.1
spring: 4.3.0-RELEASE
Database: Oracle 12c
解决方案
推荐阅读
- r - R- 转换为 TS
- windows - 在 Windows 10 中使用 ssh 的 Git 远程存储库 - 有没有办法让它完美运行?
- firebase - Firebase 云消息传递 cURL POST 显示错误 403
- node.js - 如何销毁存储在 MongoDB(NodeJS)中的会话
- azure - Azure 函数的 ARM 模板忽略 preWarmedInstanceCount 设置
- javascript - 为什么 allSettled 不会拒绝一个嘲笑的笑话承诺?
- python - yolov4 自定义对象检测在训练期间出错
- angular - Angular 9 中不显示嵌套的 Mat-Tree 子级
- ffmpeg - FFMPEG [mp3float @ 0x7fd42f813200] 缺少标头
- python - argmax() 不显示时间戳索引仅索引号