私はCustomerとTransactionの2つのオブジェクトを持っています。これらは次のようになります。ManyToOneマッピングに存在しない場合、オブジェクトはロードしません。
@Entity
class Transaction {
@Id
long id;
@Column("CUSTOMER_ID")
long customerId;
@ManyToOne
@JoinColumn(name="CUSTOMER_ID", insertable=false, updatable=false, nullable=false)
Customer customer
...
}
@Entity
class Customer {
@ID
long id;
...
}
問題は、偽の顧客番号を使用して、ある種の取引を特定することです。私が変えることは何もできず、私のコントロール外のさまざまな他のプロセスがそれに頼っているのは、伝統的なプラクティスです。私が行うことができるようにしたいのですがどのような
は、ダミー顧客取引のために戻って顧客番号を取得し、ちょうど私のトランザクションオブジェクトにヌルの顧客を持っています。ダミー顧客ではない取引の場合、私は顧客オブジェクトを設定したいと思います。理想的には、ダミーの顧客番号をテストして別のクエリを発行する必要はありません。
クエリを作成し、それにオブジェクトをマップするにはどうすればよいですか?私が試したすべてのものは、ダミーのポリシーIDのEntityNotFound例外で終わります。
私は、Hibernateを使用しています。問題は、CUSTOMER_IDがnullの場合ではなく、nullではなくオブジェクトを参照していない場合です。対応する顧客オブジェクトを持たない特定の仮の顧客IDがあります。上記のように、残念ながら、それらは他のプロセスやシステムが依存しているため、私が削除できない遺産です。 – AndrewMcCall
この問題は、Hibernateはこの問題を持っていないプロキシを使用しない他のJPA実装、遅延ロードを実装するためにプロキシを使用する方法に固有のものです。それをEAGERにすると問題が解決するはずです。 – James
それは正常に動作している、彼らが存在する場合、エンティティがロードされていないことではありません。問題は、エンティティが存在しないとき、例外をスローするダミーの顧客の1つであるときです。 – AndrewMcCall