Pessoal, como o titulo ja diz tudo, estou tentando listar o fornecedor do meu produto, sendo que ele fica dando o seguinte erro:
failed to lazily initialize a collection of role: modelo.Produto.fornecedores, no session or session was closed
Aqui está minha classe produto:
[code]@Entity
@Table(name = “tbl_produto”)
public class Produto {
@Id
@GeneratedValue
@Column(name = "id_produto")
private long id;
@Column(name = "nome", nullable = false, length = 50)
private String nome;
@Column(name = "preco_unitario", length = 10, nullable = false)
private double precoUnitario;
@Column(name = "preco_venda", length = 10, nullable = false)
private double precoVenda;
@Column(name = "unidade_medida", length = 10, nullable=false)
private String unidadeMedida;
@Column(name = "quantidade_disponivel", length = 20, nullable=false)
private int quantidadeDisponivel;
@Column(name = "tipo", length=20)
private String tipo;
@ManyToMany(mappedBy="produtos")
private List<Fornecedor> fornecedores;[/code]
Fornecedor:
[code]@Entity
@Table(name = “tbl_fornecedor”)
public class Fornecedor {
@Id
@GeneratedValue
@Column(name = "id_fornecedor")
private long id;
@Column(name = "nome", nullable = false, unique = true, length = 50)
private String nome;
@Column(name = "telefone", length = 20)
private String telefone;
@Column(name = "endereco", length = 70)
private String endereco;
@Column(name = "numero", length = 6)
private String numero;
@Column(name = "bairro", length = 20)
private String bairro;
@Column(name = "conta", length = 30)
private String conta;
@Column(name = "banco", length = 30)
private String banco;
@Column(name = "cnpj", length = 14, unique = true)
private String cnpj;
@Column(name = "email", length = 40)
private String email;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="fornecedores_produtos",
joinColumns = {@JoinColumn(name="id_fornecedor")},
inverseJoinColumns = {@JoinColumn(name="id_produto")})
@Cascade(CascadeType.REMOVE)
private List<Produto> produtos;
[/code]
Assim estou tentando listar
[code]List produtos = new ArrayList();
produtos.addAll(fachada.listarProdutos());
for (int i = 0 ; i < produtos.size(); i++) {
System.out.println(produtos.get(i).getFornecedores().get(i).getNome());
}[/code]