Olá Tenho necessidade de relacionar uma entidade com mais de uma entidade. Não posso mudar a estratégia de herança.
Pois bem, existem vários tipos de processos, como criminais, civis etc. Cada tipo de processo possui uma lista de leis, mas não consigo mapear o relacionamento entre ProcessoCriminal-Lei ao mesmo tempo que ProcessoCivil-Lei.
Lei não pode ser Embeddable (portanto, não posso usar @ElementCollection e @CollectionTable) pois possui uma lista de artigos (classe que não coloquei código abaixo). Deixando Lei como Embeddable não consigo mapear a lista de artigos.
Alguém tem alguma sugestão de como mapear esses relacionamentos sem precisar deixar a lista de Lei como transient nas "classes processos"?
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class ProcessoCivil {
@Id
@Column(name = "COD_PROCESSO")
private Integer codigo;
@OneToMany(targetEntity = Lei.class)
@JoinColumn(name = "COD_PROCESSO")
private List<Lei> leis;
// Outros códigos
}
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class ProcessoCriminal {
@Id
@Column(name = "COD_PROCESSO")
private Integer codigo;
@OneToMany(targetEntity = Lei.class)
@JoinColumn(name = "COD_PROCESSO")
private List<Lei> leis;
// Outros códigos
}
@Entity
public class Lei {
@Id
@Column(name = "COD_LEI")
private Integer codigo;
// Outros códigos
}