Oracleに日付+シーケンスのuniqueIDがあります。例: 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のuniqueIDに基づいてエンティティを検索していると思います。自動生成された日付+シーケンス番号を取り戻すことは可能ですか?私は'挿入されたオブジェクトを見て、uniqueID を直接コピーすることで、オブジェクトを永続化して取得することができますが、明らかにそれは役に立ちません.エラーメッセージなどを確認したい場合は、私に知らせてください.そして、私が試みているように見える「解決策」が表示されるか、「力ずくの回避策」を使用したと述べたが、それが何を意味するかを説明しなかった人がいます。