Ola pessoal
Estou com um problema na hora de listar uma mensagem ao um acessorio existente, já fiz a relação de classes e esta tudo certo é mesmo soh na hora de listar, alguem pode me ajudar e reparem que na classe computador eu tenho um List acessorio e na classe acessorio eu tenho um Set, com um List sei como funciona mas com o Set não sei, alguem pode ajudar.
Computador.jsp
package classes;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import java.util.List;
import java.util.Set;
@Entity
public class Computador implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name="id",nullable =false)
private Integer id;
@Column (name="nome")
private String nome;
@Column (name="marca")
private String marca;
@Column (name="comprado")
private Boolean comprado = false;
public Boolean getComprado() {
return comprado;
}
public void setComprado(Boolean comprado) {
this.comprado = comprado;
}
@ManyToMany (targetEntity=classes.Acessorio.class,
cascade={CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "pc_acess",
joinColumns = {@JoinColumn(name = "acessorio_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "computador_id", referencedColumnName = "id")})
private List<Acessorio>pcAcesList;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public List<Acessorio> getPcAcesList() {
return pcAcesList;
}
public void setPcAcesList(List<Acessorio> pcAcesList) {
this.pcAcesList = pcAcesList;
}
public Float getTotal() {
if(pcAcesList != null){
return pcAcesList.size()*20F;
}else
return 0F;
}
}
Acessorio.jsp
package classes;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
import javax.persistence.*;
import org.hibernate.mapping.Collection;
@Entity
public class Acessorio implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name=“id”, nullable= false)
private Integer id;
@Column (name=“desc”)
private String desc;
@Column (name=“parte”)
private String parte;
@Column (name=“valor”)
private int valor;
@OneToMany()
private Set<Mensagem> mensagens;
public Set<Mensagem> getMensagens() {
return mensagens;
}
public void setMensagens(Set<Mensagem> mensagens) {
this.mensagens = mensagens;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getParte() {
return parte;
}
public void setParte(String parte) {
this.parte = parte;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
}
Mensagem.jsp
package classes;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
import javax.persistence.*;
import org.hibernate.mapping.Collection;
@Entity
public class Mensagem implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name=“id”, nullable= false)
private Integer id;
@Column (name=“texto”)
private String texto;
@Column (name=“acessorio”)
private String acessorio;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
public String getAcessorio() {
return acessorio;
}
public void setAcessorio(String acessorio) {
this.acessorio = acessorio;
}
}
E A onde quero listar a mensagem não consigo associar ao acessorio que escolhi
ListaComputador.jsp
<%@page import=“java.util.List”%>
<%@page import=“javax.persistence.Persistence”%>
<%@page import=“javax.persistence.EntityManager”%>
<%@page import=“javax.persistence.Query”%>
<%@page import=“classes.Computador” %>
<%@page import=“classes.Acessorio” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%
EntityManager manager = Persistence.createEntityManagerFactory(“exemplo”).createEntityManager();
Query q = manager.createQuery(“from Computador a”);
List l = q.getResultList();
EntityManager manager1 = Persistence.createEntityManagerFactory("exemplo").createEntityManager();
Query a = manager.createQuery("from Acessorio a");
List b = a.getResultList();
EntityManager manager2 = Persistence.createEntityManagerFactory("exemplo").createEntityManager();
Query c = manager.createQuery("from Mensagem a");
List d = c.getResultList();
%>
<c:forEach var=“computador” items="<%= l %>">
COMPUTADOR |
||
Id |
Nome |
Marca |
ACESSORIOS |
se puderem me ajudar