休止状態でカスケード操作を使用する際に問題が発生します。私は1つのエンティティ(TripleDBmodel)を持ち、エンティティの主キーは3つのオブジェクト(Concept)への参照を使って作成されます。それは完璧に働いている、私はまた、これらのオブジェクトのカスケード操作を追加、私はTripleDBModelエンティティの保存操作は、データベースに存在しない概念も保存すると思います。しかし、それはそのように動作していません。休止状態カスケード操作が動作しない
@Entity
@Table(name = "triple")
public class TripleDBModel implements java.io.Serializable{
private Concept subject;
private Concept object;
private Concept predicate;
public TripleDBModel(){
}
@Id
@ManyToOne(targetEntity=Concept.class)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
@JoinColumn(name="subject_uri")
public Concept getSubject() {
return subject;
}
public void setSubject(Concept subject) {
this.subject = subject;
}
@Id
@ManyToOne(targetEntity=Concept.class)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
@JoinColumn(name="object_uri")
public Concept getObject() {
return object;
}
public void setObject(Concept object) {
this.object = object;
}
@Id
@ManyToOne(targetEntity=Concept.class)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
@JoinColumn(name = "predicate_uri")
public Concept getPredicate() {
return predicate;
}
public void setPredicate(Concept predicate) {
this.predicate = predicate;
}
}
@Entity
@Table(name = "concept")
public class Concept implements java.io.Serializable {
private String uri;
private String label;
// private List<TripleDBModel> triple;
public Concept(String uri, String label) {
this.uri = uri;
this.label = label;
this.ontologies = new ArrayList<Ontology>();
}
public Concept() {
super();
}
@Id
@Column(name = "uri", length = 255, unique = true, nullable = false)
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
....
}
「機能しない」とは何ですか?あなたは何を期待していますか?代わりに何をしますか?実行しているコードは何ですか? –
答えをありがとう。私は、tripleDBmodelに表示される概念がまだ保存されていない(データベースにない)場合はsession.save(tripleDBmodel)を作成し、コンセプトが保存され、テーブルコンセプトで表示されることを期待しています。カスケード操作が行われます。 – silvestrelosada