エローカルビッシュ
Relationships
@OneToMany
モデル間は、@ManyToOne
、@OneToOne
、 などの一般的な JPA アノテーションで設定されます。
したがってUser.java
、ユーザーテーブルのQuestion.java
モデルとユーザーの質問のモデルがある場合は、それらを結合できます@OneToMany
(One User
has Many Question
s)
ユーザー
@Entity
public class User extends Model {
@Id
public Long id;
public String email;
@OneToMany
public List<Question> questions;
}
質問
@Entity
public class Question extends Model {
@Id
public Long id;
public String question;
}
コントローラーでユーザーを選択すると、Ebean はデフォルトで「結合」を実行し、すべてのユーザーの質問も取得します。
User user = User.find.where().eq("email", email).findUnique();
List<Question> usersQuestion = user.questions;
デフォルトでは、Ebean はすべてのオブジェクトのプロパティと関係をフェッチするため、サブクエリを作成する必要はありません。もちろん、現時点で必要なデータのみを選択/フェッチできます。
公式の Ebean ドキュメント ページには、非常に優れたリファレンス ガイド (pdf)があります。関係の一般的な説明は、セクション にあります11.6.2 Relationships
。
セクションには、と4.1.2 Query
を使用して「部分的な」オブジェクトを取得する方法を示す例 (2 番目) があります。select()
fetch()