Pessoal, estou aprendendo Hibernate e estou com bastante dificuldade em definir um determinado tipo de relacionamento.
Classe PersonDO:
@Entity
public class PersonDO implements Serializable {
protected Long id;
protected String name;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
...
}
Classe RelationshipDO:
@Entity
public class RelationshipDO implements Serializable {
private Long id;
private PersonDO from;
private PersonDO to;
private RelationshipType type;
private String description;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Enumerated(EnumType.STRING)
public RelationshipType getType() {
return type;
}
public void setType(RelationshipType type) {
this.type = type;
}
...
}
RelationshipType:
public enum RelationshipType {
PARTNER,
CLIENT,
...
}
Situação:
A classe RelationshipDO é responsável por permitir que um PersonDO se relacione com outro PersonDO. O tipo do relacionamento será classificado com o enum RelationshipType.
Um PersonDO pode se relacionar com outro PersonDO diversas vezes e de diferentes formas (com diferentes RelationshipType classificando a relação).
A minha grande dúvida é como eu consigo definir via annotation que um PersonDO tem muitos relacionamentos? Em RelationshipDO como fica a annotation para permitir isso? O que mais complica minha vida é resolver a questão do PersonDO to e do PersonDO from presentes em RelationshipDO.
Não sei se fui muito claro.