1

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 を直接コピーすることで、オブジェクトを永続化して取得することができますが、明らかにそれは役に立ちません.エラーメッセージなどを確認したい場合は、私に知らせてください.そして、私が試みているように見える「解決策」が表示されるか、「力ずくの回避策」を使用したと述べたが、それが何を意味するかを説明しなかった人がいます。

4

1 に答える 1