Pessoal tenho a tabela de Atestados que possui Cids
porém na tabela de cid possui uma chave composta com 5 foreigns keys de Atestados u[/u]
É eu sei… seria muito mais facil ter a Pk de Atestado como FK… porém não posso alterar o banco…
pesquisei e achei alguns tópicos porém só com chave compostas com Pks
então gostaria que me dessem um help…
Segundo o que eu li eu deveria criar uma classe com as FKS segue exemplo embaixo
e botar um @EmbeddedId private AtestadoFk atestadofk; na classe Cid…
[color=red]Só que como fica o ManyToOne com Atestado ? não consigo entender…[/color]
AtestadoFK
[code]public class AtestadoFk {
@Column(name = "cd_empresa", nullable = false, length = 6)
private Long codigoEmpresa;
@Column(name = "cd_matricula", nullable = false, length = 10)
private Long codigoMatricula;
@Column(name = "tp_atestado", nullable = false, length = 10)
private Long tipoAtestado;
@Column(name = "dt_atestado", nullable = false)
@Temporal(javax.persistence.TemporalType.DATE)
private Date dataAtestado;
@Column(name = "nr_atestado", nullable = false, length = 11)
private Long numeroAtestado;
}[/code]
Atestado
[code]@Entity
@Table(name = “ATEST_MEDICOS”)
@SequenceGenerator(name = “SE__ATESTADO_MEDICO”, sequenceName = “SE_ATESTADO_MEDICO”)
public class Atestado implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SE_ATESTADO_MEDICO")
@Column(name = "oid_atestado", nullable = false)
private Long id;
@SuppressWarnings("unchecked")
@OneToMany(targetEntity = Cid.class, cascade = CascadeType.ALL, mappedBy = "atestadoMedico",fetch=FetchType.EAGER)
private Set<Cid> atestadoMedicoCid;
@Column(name = "cd_empresa", nullable = false, length = 6)
private Long codigoEmpresa;
@Column(name = "cd_matricula", nullable = false, length = 10)
private Long codigoMatricula;
@Column(name = "tp_atestado", nullable = false, length = 10)
private Long tipoAtestado;
@Column(name = "dt_atestado", nullable = false)
@Temporal(javax.persistence.TemporalType.DATE)
private Date dataAtestado;
@Column(name = "nr_atestado", nullable = false, length = 11)
private Long numeroAtestado;[/code]
Cid
[code]@Entity
@Table(name = “ATEST_MEDICOS_CID”)
@SequenceGenerator(name = “SE_ATESTADO_MEDICO_CID”, sequenceName = “SE_ATESTADO_MEDICO_CID”)
public class Cid implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SE_ATESTADO_MEDICO_CID")
@Column(name = "oid_atestado_cid", nullable = false, length = 5)
private Long id;
@SuppressWarnings("unchecked")
@ManyToOne(targetEntity = Atestado.class, cascade=javax.persistence.CascadeType.ALL,fetch = FetchType.LAZY)
private Atestado atestadoMedico;
@Column(name = “doenca”, nullable = false, length = 60)
private String doenca;
@EmbeddedId
private AtestadoFk atestadofk;[/code]