我在Oracle中有一个dateID序列的唯一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);
以上是我尝试过的各种各样的事情。当我使用刷新时,我得到一个错误,说“未找到实体”(我假设它正在查找基于预先存在的唯一ID为null的实体。是否有可能找回自动生成的日期+序列号?我'我可以通过查看插入的对象并直接复制uniqueID来保持和检索对象,但显然这是无用的。任何帮助非常感谢,如果你想看到错误消息等,请告诉我。我已经搜索过我或者看到“解决方案”似乎是我正在尝试的,或者一个人说他使用了“蛮力的解决方案”,但没有描述这意味着什么。
答案 0 :(得分:0)
对于任何可能发生在此事上的人。我保留了数据库触发器并且刚刚使用了:
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 15)
@Column(name = "ORDER_ID")
private String orderId;
我不需要使用@GeneratedValue或其任何变体。