@thimfont escreveu:
Olá galera, tudo bem?
Estou tentando resolver este problema mas não estou conseguindo evoluir com as pesquisas que tenho feito. Meu cenário é o seguinte:
Tenho uma classe chamada Plano. Ela possui muitas Ações e muitas Interações. Por isso as coloquei em uma List. Segue o modelo dela:
import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; import javax.persistence.*; import java.util.Calendar; import java.util.List; @Entity @Table(name = "Plano") @TableGenerator( name = "PLANO_GEN", table = "PLANO_ID", pkColumnName = "ID", pkColumnValue = "PLANO", valueColumnName = "VALOR", allocationSize = 1 ) public class Plano { @Id @GeneratedValue(strategy = GenerationType.TABLE, generator = "PLANO_GEN") private Long id; @ManyToOne @JoinColumn(name = "id_representante") private Representante representante; @ManyToOne @JoinColumn(name = "id_conta") private Conta conta; @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "id_plano") private List<Acao> acoes; @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "id_plano") private List<Interacao> interacoes; }
Cada plano está ligado a uma Conta e a um Representante.
Eu gostaria de realizar um consulta, listando o plano cadastrado. O resultado deveria trazer os dados do Plano e os dados das relações de Conta, Representante, Ações e Interações. Este é o meu método Dao:
import org.springframework.stereotype.Repository; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.Query; import java.util.ArrayList; import java.util.List; @Repository public class PlanoDao { public List<Plano> planos() { EntityManagerFactory factory = Persistence.createEntityManagerFactory("Plano"); EntityManager manager = factory.createEntityManager(); List<Plano> planos = manager.createQuery("select p from Plano as p join fetch p.acoes join fetch p.interacoes").getResultList(); manager.close(); factory.close(); return planos; } }
Ao executá-lo obtenho o erro:
cannot simultaneously fetch multiple bags:Ao retirar a palavra fetch da consulta obtenho o erro:
failed to lazily initialize a collection of rolePor favor, poderiam me ajudar com este caso?
Valeu!
Mensagens: 2
Participantes: 2