Ebeanで、OneToOneでモデルを結合する際の注意
Ebeanで、OneToOneでモデルを結合する際、アノテーションの付け方によって挙動が変化する。
基本的には両方のモデルに@OneToOne
アノテーションを付けるが、この時アノテーションのパラメータを両方共指定しなかった場合は、生成されるSQLで、お互いのIDを保持するカラムが生成されてしまう。このを回避するためには、どちらかのアノテーションにmappedBy
パラメータを付加する必要がある。
どちらのアノテーションにつけるかは、両方試してみて生成されるSQLを確認してみると良い。
@Entity
public class One {
@OneToOne(mappedBy = "one")
Two two;
}
@Entity
public class Two {
@OneToOne
One one;
}