Boa tarde, pessoal espero ajuda de vocês, procurei muito na internet e até agora nenhum exemplo deu certo, tenho um relacionamento n:n com uma tabela de relacionamento que possui dados. Alguém sabe como fazer? Ja tenho alguma coisa pronta ja testei muita coisa também mas até agora nada.
As tabelas são:
Pesquisa, Pergunta e Perguntaspesquisa.
Atualmente está assim:
Pesquisa:
@Entity
@Table(name = "pesquisa")
@NamedQueries( {
@NamedQuery(name = "Pesquisa.findByIdpesquisa", query = "SELECT p FROM Pesquisa p WHERE p.idpesquisa = :idpesquisa"),
@NamedQuery(name = "Pesquisa.findByDatapesquisa", query = "SELECT p FROM Pesquisa p WHERE p.datapesquisa = :datapesquisa"),
@NamedQuery(name = "Pesquisa.findByNotaempresa", query = "SELECT p FROM Pesquisa p WHERE p.notaempresa = :notaempresa")
})
@SequenceGenerator(name="pesquisa_idpesquisa_seq",sequenceName="pesquisa_idpesquisa_seq")
public class Pesquisa implements Serializable {
@Id
@Column(name = "idpesquisa", nullable = false)
@GeneratedValue(strategy=GenerationType.AUTO, generator="pesquisa_idpesquisa_seq")
private Integer idpesquisa;
@Column(name = "datapesquisa")
@Temporal(TemporalType.DATE)
private Date datapesquisa;
@Column(name = "notaempresa")
private Double notaempresa;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "pesquisa")
private Collection<Perguntaspesquisa> perguntaspesquisaCollection;
@JoinColumn(name = "idusuario", referencedColumnName = "idusuario")
@ManyToOne
private Usuario idusuario;
Pergunta:
@Entity
@Table(name = "pergunta")
@NamedQueries( {
@NamedQuery(name = "Pergunta.findByIdpergunta", query = "SELECT p FROM Pergunta p WHERE p.idpergunta = :idpergunta"),
@NamedQuery(name = "Pergunta.findByTextopergunta", query = "SELECT p FROM Pergunta p WHERE p.textopergunta = :textopergunta")
})
@SequenceGenerator(name="pergunta_idpergunta_seq",sequenceName="pergunta_idpergunta_seq")
public class Pergunta implements Serializable {
@Id
@Column(name = "idpergunta", nullable = false)
@GeneratedValue(strategy=GenerationType.AUTO, generator="pergunta_idpergunta_seq")
private Integer idpergunta;
@Column(name = "textopergunta")
private String textopergunta;
@JoinColumn(name = "idproduto", referencedColumnName = "idproduto")
@ManyToOne
private Produto idproduto;
@JoinColumn(name = "idtipopergunta", referencedColumnName = "idtipopergunta")
@ManyToOne
private Tipopergunta idtipopergunta;
@OneToMany(cascade = CascadeType.PERSIST, mappedBy = "pergunta")
private Collection<Perguntaspesquisa> perguntaspesquisaCollection;
Perguntapesquisa:
@Entity
@Table(name = "perguntaspesquisa")
@NamedQueries( {
//@NamedQuery(name = "Perguntaspesquisa.findByIdpergunta", query = "SELECT p FROM Perguntaspesquisa p WHERE p.perguntaspesquisaPK.idpergunta = :idpergunta"),
//@NamedQuery(name = "Perguntaspesquisa.findByIdpesquisa", query = "SELECT p FROM Perguntaspesquisa p WHERE p.perguntaspesquisaPK.idpesquisa = :idpesquisa"),
@NamedQuery(name = "Perguntaspesquisa.findByNivelresposta", query = "SELECT p FROM Perguntaspesquisa p WHERE p.nivelresposta = :nivelresposta"),
@NamedQuery(name = "Perguntaspesquisa.findByTextoresposta", query = "SELECT p FROM Perguntaspesquisa p WHERE p.textoresposta = :textoresposta"),
@NamedQuery(name = "Perguntaspesquisa.findByNumeroresposta", query = "SELECT p FROM Perguntaspesquisa p WHERE p.numeroresposta = :numeroresposta"),
@NamedQuery(name = "Perguntaspesquisa.findByComentarioresposta", query = "SELECT p FROM Perguntaspesquisa p WHERE p.comentarioresposta = :comentarioresposta")
})
@IdClass(PerguntaspesquisaPK.class)
public class Perguntaspesquisa implements Serializable {
/**
* Campo de chave primária embutido
*/
//@EmbeddedId
//protected PerguntaspesquisaPK perguntaspesquisaPK;
@Id
@Column(name = "idpesquisa", nullable = false)
private int idpesquisa;
@Id
@Column(name = "idpergunta", nullable = false)
private int idpergunta;
@Column(name = "nivelresposta")
private Integer nivelresposta;
@Column(name = "textoresposta")
private String textoresposta;
@Column(name = "numeroresposta")
private Double numeroresposta;
@Column(name = "comentarioresposta")
private String comentarioresposta;
@JoinColumn(name = "idpergunta", referencedColumnName = "idpergunta", insertable = false, updatable = false)
@ManyToOne
private Pergunta pergunta;
@JoinColumn(name = "idpesquisa", referencedColumnName = "idpesquisa", insertable = false, updatable = false)
@ManyToOne
private Pesquisa pesquisa;
Desde ja agradeço a todos. Abraço