私はHibernate3.2.7.gaを使用していますが、次のことが可能かどうか疑問に思っています。
人、町、市長の3つのオブジェクトがあるとします。
アプリケーションに個人を登録するとき、あなたは彼または彼女の居住地に入るように求められます。このフィールドは文字列として保存されます。
アプリケーションの別の部分では、町を登録できます(名前、住民の数など)。町が登録されたら、この町に市長を追加できます。
ただし、クライアントで入力されるすべての町の町オブジェクトを作成することは望ましくありません。オブジェクトは、市長を登録する必要がある場合にのみ必要です。
PersonのStringフィールドを使用するだけで、Personが住んでいる町の市長を取得できるかどうか疑問に思います。
私はこれらのコード行に沿って考えています:
public class Client.java
{
@Id
public Long id;
@Column(nullable = true, ??? )
public String townOfResidence;
public Mayor getMayor()
{
...
}
}
public class Town.java
{
@Id
public Long id;
@Column(nullable = false, unique = true)
public String name;
@OneToOne
public Mayor mayor;
}
私はちょうど次の線に沿って考えてみました:
@Transient
private Town townObject;
@ManyToOne(fetch = FetchType.LAZY, cascade = javax.persistence.CascadeType.ALL, targetEntity = Town.class, optional = true)
@JoinColumn(referencedColumnName = "town")
public Town getTown()
{
return townObject;
}