Saudações,
estou com problemas para mapear um relacionamento,
obtenhos de 3 tabelas, Profissional, Empresa, Empresa-Prof
sendo a tabela Empresa-Prof o relacionamento entre empresa e profissional.
Profissional
:arrow: num-profissional
Empresa
:arrow: cnpj
Empresa-Prof
:arrow: cnpj
:arrow: num-profissional
:arrow: cargo
A principio o mapeamento esta assim nos DTOs,
:arrow: ProfissionalDTO
@Table(name="profissional")
public class ProfissionalDTO implements Serializable {
@ManyToMany(
targetEntity=EmpresaDTO.class,
cascade={javax.persistence.CascadeType.ALL}
)
@JoinTable(
name="empresa-prof",
joinColumns={@JoinColumn(name="num-profissional")},
inverseJoinColumns={@JoinColumn(name="cnpj")}
)
private Set<EmpresaDTO> empresas;
:arrow: EmpresaDTO
@Entity
@Table(name="empresa")
public class EmpresaDTO implements Serializable {
@ManyToMany(
targetEntity=ProfissionalDTO.class,
cascade={CascadeType.ALL}
)
@JoinTable(
name="empresa-prof",
joinColumns={@JoinColumn(name="cnpj")},
inverseJoinColumns={@JoinColumn(name="num-profissional")}
)
private Set<ProfissionalDTO> profissionais;
um dos erros que estou recebendo é que quando faço um select no hql buscando o profissional pela chave, fazendo left join com empresas, ele me traz um Object[2], sendo Object[0] o profissionalDTO, e o Object[1] null… nao sei pq disso…
outra coisa que ta quebrando e que tem o campo cargo na tabela de relacionamento, e a mesma nao possuo chave primaria. sendo assim eu acho que nao conseguiria fazer um DTO para essa tabela de relacionamento, pq o hibernate exige um id…
alguma sugestão?
