gpt4 book ai didi

java - 持久化JPA后获取UniqueID

转载 作者:行者123 更新时间:2023-12-01 04:49:07 25 4
gpt4 key购买 nike

我在Oracle中有一个日期+序列的唯一ID。示例:20130307-000021

我的实体对象 uniqueID 如下所示:

@Id
// @GeneratedValue
// @Basic(optional = false)
// @NotNull
// @Size(min = 1, max = 15)
@Column(name = "UNIQUE_ID")
private String uniqueId;

每当我使用 @GenerateValue 或其变体时,我都会收到“未找到序列”或其他错误。我正在尝试取回 Oracle 数据库在持久保存对象后生成的唯一 ID。

      this.dbConn.persist(orderDetail);
this.dbConn.flush();
//this.dbConn.refresh(orderDetail);
//OrderDetails od = new OrderDetails();
//od =(OrderDetails)this.dbConn.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(orderDetail);

以上是我尝试过的一些不同的事情。当我使用刷新时,我收到一条错误消息,提示“实体”未找到(我假设它正在根据 null 的预先保留的 uniqueID 查找实体。是否可以取回自动生成的日期+序列号?我'我能够通过查看插入的对象并直接复制 uniqueID 来保存和检索对象,但显然这是无用的。非常感谢任何帮助,如果您想查看错误消息等,请告诉我。我已经搜索过我要么看到似乎是我正在尝试的“解决方案”,要么有人说他使用了“强力解决方法”,但没有描述这意味着什么。

最佳答案

对于任何可能发生这种情况的人。我保留了数据库触发器并只是使用:

 @Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 15)
@Column(name = "ORDER_ID")
private String orderId;

我不需要使用 @GenerateValue 或其任何变体。

关于java - 持久化JPA后获取UniqueID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com