4
私は2つのテーブル "student"と "picklist"を持っています。
picklist - を国、国、都市のようなリストの共通テーブルとして使用しました。ここで
同じテーブル内の複数の列を結合するにはどうすればよいですか?
学生のクラスである:ここで
@Entity
public class Student {
@Id
Long id;
String firstName;
String lastName;
Long accountId;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumns({@JoinColumn(name="country",referencedColumnName = "name"),
@JoinColumn(name="accountId",referencedColumnName = "accountId")}
)
PickList country;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumns({@JoinColumn(name="state",referencedColumnName = "name"),
@JoinColumn(name="accountId",referencedColumnName = "accountId")}
)
PickList state;
}
は、選択リストのテーブルです:
@Entity
@Table(name = "picklist", uniqueConstraints = {
@UniqueConstraint(columnNames = {"accountId", "name"})
})
public class PickList {
@Id
long id;
long accountId;
String name;
}
エラー - Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: column: accountid (should be mapped with insert="false" update="false")
かもしれない、私の質問は何の関連答え – Nikesh
を見つける重複しているではなく、 'accountId'には?どちらのテーブルでもユニークですか? – johnnyaug
これはユニークではありませんが、繰り返し可能な単純な列ですが、accountIdとnameはPickListテーブルのUniqueConstraintです – Nikesh