私は基準でHibernateを使用しています。Hibernateのコレクションから単一の結果を取得するためにフェッチモードを設定するには?
私はこのように定義されたJavaモデルを持っています。
@Entity
@Table(name = "questionask", uniqueConstraints = @UniqueConstraint(columnNames = "code"))
public class QuestionAsk extends LobEntity implements Comparable<Object> {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "questionAsk")
private List<Answer> answerList = new Arraylist<Answer>(0);
//getters and settes
..
}
フェッチされたデータで回答リストを取得する場合は、次のように設定します。
criteria.setFetchMode(property, FetchMode.JOIN); //This works .
しかし、私の要件は、ユーザーの要求に応じて、コレクションからいくつかのレコードを取得することです。それは私がその一つの答えをanswerListを取得したいと思います
answerList.code=an_123
(answerListでそれぞれの答えはcode
属性を持つ)、ユーザーは次のクエリを提供する場合、です。しかし、私にはうまくいかない。 (つまり、遅延ロードと定義したanswerListをフェッチしていないことを意味します)
私はこのように試しています。 criteria.setFetchMode(answerList、FetchMode.JOIN);その他はjoins
とins
が必要です。
どのようにすれば基準でこれを行うことができますか? Hibernateはこれをサポートしていますか?