Galera, estou com um problema em um relacionamento many-to-many com atributos na terceira tabela. Já vi vários textos na internet e até mesmo aqui no GUJ, mas não estou conseguindo fazer um findAll() na terceira tabela. Minha dúvida é a seguinte: Tenho uma classe MercadoBean e outra ProdutoBean, a ideia é que terceira tabela/classe MercadoProduto tenha o relacionamento entre elas mais o preço de cada produto em cada mercado. Vi esse exemplo nesse site: http://www.wbotelhos.com/2011/12/06/hibernate-relacionamento-manytomany-com-atributos
O erro que acontece é hibernate.LazyInitializationException: could not initialize proxy. Porque acontece esse erro? Essa modelagem/abordagem está correta? Alguém tem alguma opinião para melhorar ou ajudar?
método findAll();
@SuppressWarnings("unchecked")
@Transactional(readOnly = true)
public List<T> findAll() {
logger.info("Find All" + persistentClass);
return (getHibernateTemplate().find("from " + persistentClass.getName()
+ " x"));
}
MercadoBean
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "mercado_id")
private Integer id;
@Column(name = "mercado_nome", length = 50)
private String nome;
@OneToMany(mappedBy = "produto", cascade = CascadeType.ALL)
private List<MercadoProduto> produto;
// Getters and setters
ProdutoBean
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "produto_id")
private Integer id;
@Column(name = "produto_nome", length = 50)
private String nome;
@OneToMany(mappedBy = "mercado", cascade = CascadeType.ALL)
private List<MercadoProduto> mercado;
// Getters and setters
MercadoProduto
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "merc_prod_id")
private Integer id;
@Column(name = "merc_prod_preco")
private Double preco;
@ManyToOne
@JoinColumn(name = "merc_prod_mercado_id")
private MercadoBean mercado;
@ManyToOne
@JoinColumn(name = "merc_prod_produto_id")
private ProdutoBean produto;
// Getters and setters
