Illegal attempt to associate a collection with two open sessions

0 respostas
rafa120

Estou tentando pela última vez resolver isso, se nao der agora eu desisto já que é por hobby mesmo. Nunca fiquei tanto tempo num problema. Já estou a semanas tentando resolver este erro e nada…pqp!

Se alguem puder dar uma luz, ai…por favor!! Já tentei muita coisa e nada funciona.

TeamModel

@Entity
@Table(name="team")
public class Team implements Serializable{
    
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id_team",nullable=false)
    private Integer idTeam;
    
    @Column(name="team",nullable=false)
    private String team;
    
    @OneToMany(fetch=FetchType.LAZY, targetEntity=Usuario.class,mappedBy="team")
    private Set usuarios = new HashSet(0);
    
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_flm")
    private Flm flm;

TeamDaoImpl

@Override
    public void atualizar(Team team) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        try {
            session.beginTransaction();
            session.update(team);
           session.getTransaction().commit();
        } catch (Exception e){
            System.out.println("Erro ao atualizar: "+e.getMessage());
            session.getTransaction().rollback();
        } //finally {
            //session.close(); 
        //} 
   }

@Override
    public Team findById(Integer id_team) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        return (Team) session.load(Team.class, id_team);
    }

@Override
    public List<Team> findAll() {
        Session session = HibernateUtil.getSessionFactory().openSession();
        return session.createQuery("from Team ORDER BY id_flm ASC").list();
    }

TeamBean

@ManagedBean(name="teamBean")
@ViewScoped
public class TeamBean implements Serializable {

FlmDaoImpl

public class FlmDaoImpl implements FlmDao {

@Override
    public List<Flm> selectItems() {
         List<Flm> listado = null;
        Session sesion = HibernateUtil.getSessionFactory().getCurrentSession();
        String sql = "FROM Flm";
        try {
            sesion.beginTransaction();
            listado =  sesion.createQuery(sql).list();
            sesion.beginTransaction().commit();
        } catch (Exception e) {
            sesion.beginTransaction().rollback();
            System.out.println("Erro no selecItemsFLM: "+e.getMessage());
        } 
        return listado;
    }

obs: merge() funciona só quando atualizada o campo “team name” e nao funciona para o campo “flm”

Criado 15 de março de 2016
Respostas 0
Participantes 1