我在 Oracle 中有一个唯一的日期 + 序列 ID。示例:20130307-000021
我的实体对象 uniqueID 如下所示:
@Id
// @GeneratedValue
// @Basic(optional = false)
// @NotNull
// @Size(min = 1, max = 15)
@Column(name = "UNIQUE_ID")
private String uniqueId;
每当我使用 @GeneratedValue 或其变体时,我都会收到“未找到序列”或其他一些错误。在我持久化一个对象后,我试图取回由 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 的预持久唯一 ID 查找实体。是否可以取回自动生成的日期+序列号?我通过查看插入的对象并直接复制uniqueID,我能够很好地持久化和检索对象,但显然那是无用的。非常感谢任何帮助,如果您想查看错误消息等,请告诉我。我已经四处搜索我要么看到我正在尝试的“解决方案”,要么有人说他使用了“蛮力解决方法”,但没有描述这意味着什么。