Fala galera, boa tarde.
Esse é meu primeiro post aqui no forum, só estou recorrendo aqui pq não conseguí solucionar minha dúvida no tio google. Então vamos lá:
Tenho 3 tabelas.
Profissionais
MAT_PRO - PK
Indicadores
COD_IND - PK
Avaliacoes
COD_AVA - PK
MAT_PRO - PK FK
COD_IND - PK FK
Gostaria de saber como faço o mapeando da chave composta da tabela avaliacoes, pois acredito que isso resolveria meu problema.
Atualmente minhas classes AvaliacaoTO, ProfissionalTO e IndicadorTO se encontram da seguinte forma respectivamente abaixo. Estava tudo funcionando até me deparar com a seguinte situação:
Se na tabela Avaliacoes há registros do tipo:
Reg1
COD_AVA = 1
MAT_PRO = 1
COD_IND =1
Reg2
COD_AVA = 1
MAT_PRO = 1
COD_IND =2
Reg3
COD_AVA = 1
MAT_PRO = 1
COD_IND =3
E eu busco pelo COD_AVA = 1, ele deveria trazer esses 3 registros, certo? No entando, ele me traz o Reg1 três vezes!. Como resolver? :?:
@Entity
@Table(name="avaliacoes")
@NamedQueries(
{
@NamedQuery(name="avaliacoes.obterPorStatus", query="from AvaliacaoTO where status = :param")
}
)
public class AvaliacaoTO implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="COD_AVA")
private int codigo;
@ManyToOne
@JoinColumn(name="MAT_PRO", nullable=false) //Foreign Key
private ProfissionalTO profissional;
@ManyToOne
@JoinColumn(name="COD_IND", nullable=false) //Foreign Key
private IndicadorTO indicador;
@Entity
@Table(name="profissionais")
@NamedQueries(
{
@NamedQuery(name="profissionais.obterPorId", query="from ProfissionalTO where codigo = :param")
}
)
public class ProfissionalTO implements Serializable {
private static final long serialVersionUID = 1L;
@Id
//@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="MAT_PRO")
private Integer codigo;
@OneToMany(mappedBy="profissional")
private List<AvaliacaoTO> avaliacao;
@Entity
@Table(name="indicadores")
public class IndicadorTO implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="COD_IND")
private int codigo;
@OneToMany(mappedBy="indicador")
private List<AvaliacaoTO> avaliacao;
