Hibernate を使用して、小さくて奇妙な問題が発生しています。2 つのサービス間の関係を定義する「SERVICE」と SERVICE_RELATIONSHIP の 2 つのテーブルがあります。
CREATE TABLE TMS.TB_SERVICE (
ID_SERVICE INTEGER NOT NULL,
NAME VARCHAR(255),
)
CREATE TABLE SERVICE_RELATIONSHIP (
ID_SERVICE INTEGER NOT NULL,
ID_SERVICE_REL INTEGER NOT NULL,
RELATIONSHIP VARCHAR(1) // Could be 'E' (Exclude) or 'I' (Include)
)
サービスが持つ関係のタイプに応じてサービスを取得するために、さまざまなメソッド (getInclude と getExclude) を使用します。それらは完璧に機能します。唯一の問題は、 service を永続化したい場合です。 ID_SERVICE および ID_SERVICE_REL 列は正しく挿入されますが、 RELATIONSHIP は挿入されません。
@Table(name="SERVICE")
public class Service implements Serializable {
private String name;
private Integer id;
private Collection<Service> exclude;
private Collection<Service> include;
[..]
@JoinTable(name = "SERVICE_RELATIONSHIP",
joinColumns = {
@JoinColumn(name="ID_SERVICE", unique = false, updatable = true)
},
inverseJoinColumns = {
@JoinColumn(name="ID_SERVICE_REL")
}
)
@WhereJoinTable(clause = "RELATIONSHIP='E'")
public Collection<Service> getExclude() {
return exclude;
}
[..]
@OneToMany(fetch=FetchType.EAGER)
@JoinTable(name = "SERVICE_RELATIONSHIP",
joinColumns = {
@JoinColumn(name="ID_SERVICE", unique = false, updatable = true)
},
inverseJoinColumns = {
@JoinColumn(name="ID_SERVICE_REL")
}
)
@WhereJoinTable(clause = "RELATIONSHIP='I'")
public Collection<Service> getInclude() {
return include;
}
}
何か案は?前もって感謝します