1
데이터베이스를 모델링하고 있습니다.
TRIPLE
에는 세 개의 CONCEPT
이 있습니다. 따라서 클래스 TRIPLE
의 기본 키는 모두 uri
3 개입니다. 하나의 개념은 다른 TRIPLE
에있을 수 있습니다.
또한 TRIPLE
은 다른 클래스 인 ANNOTATION
과 관련이 있으며, 여기에 질문이 있습니다. 어떻게 triple_id
을 식별 할 수 있습니까 ?? 하지만 우선,이 ID 합성물을 만드는 것이 올바른지 확인하십시오. 은 모델에 그 :Hibernate @id composite
Concept.java
@Entity
@Table(name = "concept")
public class Concept implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private String id;
private List<TripleDBModel> triples;
@ManyToMany(
cascade={CascadeType.ALL},
fetch=FetchType.LAZY,
mappedBy = "concepts"
)
public List<TripleDBModel> getTriples() {
return triples;
}
public void setTriples(List<TripleDBModel> triples) {
this.triples = triples;
}
ConceptPk.java
@Embeddable
public class ConceptPk implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private String uri;
public ConceptPk(String uri, String label){
this.uri = uri;
}
public ConceptPk(){
super();
}
@Id
@Column(name = "uri", length = 100, unique = true, nullable = false)
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
}
Triple.java
@Entity
@IdClass(ConceptPk.class)
@Table(name = "triple")
public class TripleDBModel {
protected List<Annotation> annotations;
protected String conceptUriSubject;
protected String conceptUriObject;
protected String conceptUriPredicate;
@ManyToMany(
cascade={CascadeType.ALL},
fetch=FetchType.LAZY
)
@JoinTable(name = "triple_has_concept",
[email protected](name="uri"),
[email protected](name="triple_id")) //What shoul I write here???
public List<Annotation> getAnnotations() {
return annotations;
}
public void setAnnotations(List<Annotation> annotations) {
this.annotations = annotations;
}
@Id public String getConceptUriSubject() {
return conceptUriSubject;
}
public void setConceptUriSubject(String conceptUriSubject) {
this.conceptUriSubject = conceptUriSubject;
}
@Id public String getConceptUriObject() {
return conceptUriObject;
}
public void setConceptUriObject(String conceptUriObject) {
this.conceptUriObject = conceptUriObject;
}
@Id public String getConceptUriPredicate() {
return conceptUriPredicate;
}
public void setConceptUriPredicate(String conceptUriPredicate) {
this.conceptUriPredicate = conceptUriPredicate;
}
}
미리 감사드립니다 !!
class TripleId implements Serializable {
@Column(...)
private String conceptUriSubject;
@Column(...)
private String conceptUriObject;
}
을 트리플에서 사용 :
감사합니다 :
는 또한 여러 컬럼에 가입 제공 할 수 있습니다 , 나는 두 번째 옵션을 선택하고 semms 작업 –