Problema com inserção do atributo do tipo List [RESOLVIDO]

Olá alguém poderia me ajudar, pq estou com um problema para inserir um item no atributo List sugestao, da classe Evento.

No projeto persisto as disciplinas do tipo optativas na tabela Sugestao, juntamente com uma List aluno, que inicialmente tem que ser inserida como null. Depois eu tenho que inserir o tipo SUGESTAO, e persistir na tabela evento, que vai delimitar a data em que o evento contendo as SUGESTOES irá ficar ativo. O problema é que não consigo inserir nada na List, na tabela do banco ele não esta criando a variável da lista.

[code]package modelo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;

@Entity
public class Evento implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Temporal(javax.persistence.TemporalType.DATE)
private Date dataInicial = new Date();
@Temporal(javax.persistence.TemporalType.DATE)
private Date dataFinal = new Date();

@OneToMany(cascade = CascadeType.PERSIST)
@JoinColumn(name = "listaSugestoes")
private List<Sugestao> sugestoes;


//gets e sets omitidos

public void addSugestao(Sugestao item) {
sugestoes.add(item);
}

}[/code]

[code]package modelo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

@Entity
public class Sugestao implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "optativas", referencedColumnName = "id")
private Disciplina disciplina;
@OneToMany(cascade = CascadeType.PERSIST)
@JoinColumn(name = "alunos")
private List<Aluno> alunos = new ArrayList<Aluno>();

  //gets e sets omitidos

}[/code]

[code]
package modelo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;

@Entity
public class Aluno implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String nome;
private String matricula;
private String login;
private String senha;
private String periodoInicial;
private Integer periodoCorrente;

@OneToMany(cascade = CascadeType.PERSIST)
@JoinColumn(name = "IdDisciplina") 
private List<Disciplina> disciplinas = new ArrayList<Disciplina>();

//gets e sets omitidos

}[/code]

[code]
package modelo;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;

@Entity
public class Disciplina implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String codigo;
private String nome;
private Integer cargaHoraria;
private String tipo;
private Integer nivel;
private String credito;
@OneToOne (optional = false)
@JoinColumn(name = “professor”, referencedColumnName = “id”)
private Professor professor;

//gets e sets omitidos

}[/code]

package beans;

import dao.DisciplinaJpaController;
import dao.ProfessorJpaController;
import dao.SugestaoJpaController;
import dao.exceptions.NonexistentEntityException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.RollbackException;
import modelo.Disciplina;
import modelo.Professor;
import modelo.Sugestao;
import util.FacesUtil;

@ManagedBean
@SessionScoped
public class DisciplinaMB {

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("PU");

    private Disciplina disciplina = new Disciplina();
    ProfessorJpaController daoProf = new ProfessorJpaController(emf);
    DisciplinaJpaController dao = new DisciplinaJpaController(emf);
    SugestaoJpaController daoSugestao = new SugestaoJpaController(emf);
    private List<Disciplina> listaDisciplinas = new ArrayList<Disciplina>();
    private List<Sugestao> listaOptativas = new ArrayList<Sugestao>();
    
    private Professor prof = new Professor();
    private Sugestao sugestao = new Sugestao();

   //gets e sets

    public void cadastrar() {

        disciplina.setProfessor(prof);
        selecaoOptativas(disciplina);
        try {
            dao.create(disciplina);
            disciplina = new Disciplina();
            FacesUtil.adicionarMensagem("formCadastroDisc", "Cadastrado");
        } catch (EntityExistsException e) {
            FacesUtil.adicionarMensagem("formCadastroDisc", "Erro: Já está cadastrado");
        } catch (RollbackException e) {
            FacesUtil.adicionarMensagem("formCadastroDisc", "Erro: Algo deu errado no cadastro");
        }
        disciplina = new Disciplina();
        pesquisarTudo();
        
    }

    public void selecaoOptativas(Disciplina d) {

        if ("Optativa".equals(d.getTipo())) {
            cadastroSugestao(d);
        }
    }

    public void cadastroSugestao(Disciplina d) {

        sugestao = new Sugestao();
        sugestao.setDisciplina(d);
        sugestao.setAlunos(null);
        daoSugestao.create(sugestao);
    }
    
}[/code]

classe Bean onde tento inserir na List<Sugestao>, já tentei passar a lista completa de "Sugestão" direto para a classe "Evento" e não funcionou, então tentei passar item por item, como está no método pesquisarOptativas().

[code]package beans;

import dao.EventoJpaController;
import dao.SugestaoJpaController;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.RollbackException;
import modelo.Aluno;
import modelo.Evento;
import modelo.Sugestao;
import util.FacesUtil;

@ManagedBean
@RequestScoped
public class EventoMB {

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("PU");
    EventoJpaController daoEvento = new EventoJpaController(emf);
    SugestaoJpaController daoSugestao = new SugestaoJpaController(emf);
    private Evento evento = new Evento();
    private Aluno aluno = new Aluno();
    private Sugestao sugestao =new Sugestao();
    
    private List<Evento> listaEvento = new ArrayList<Evento>();

    public EventoMB() {
        evento = new Evento();
        pesquisarTudo();
        pesquisarOptativas();
        
    }

   //gets e sets

    public void cadastro() {
        
        pesquisarOptativas();
        try {
            daoEvento.create(evento);
            evento = new Evento();
            FacesUtil.adicionarMensagem("formCadastroEven", "Cadastrado");
        } catch (EntityExistsException e) {
            FacesUtil.adicionarMensagem("formCadastroEven", "Erro: Já está cadastrado");
        } catch (RollbackException e) {
            FacesUtil.adicionarMensagem("formCadastroEven", "Erro: Algo deu errado no cadastro");
        }
        pesquisarTudo();
        
    }

    public void pesquisarTudo() {

        listaEvento = daoEvento.findEventoEntities();
    }

     public void pesquisarOptativas() {
        
         for(Sugestao s: daoSugestao.findSugestaoEntities()){
         
             evento.addSugestao(s);
         }
    }
}

Ninguém conseguiu ver algum erro?

Resolvi modificar o projeto todo e não setar mais listas.

O único que esta com lista é a classe evento que agora recebe list, então criei um classe de item e fiz como se estivesse adicionando um produto a um carrinho de compras.

[code]public void adicionar() {

    item.setTurma(getTurma());
    eventoAtual(getTurma());
    evento.addTurma(item);
    itensEvento.add(item);
    item = new ItemEvento();

}[/code]