“tcc” LazyInitializationException com picklist e com buscas já emplementadas primefaces/ominifaces/jpa
Pessoal estou com um problema no meu tcc tenho uma semana para entregar então help me.
é um projeto de um sistema de comunicação acadêmico estou preso na tela da turma que tem uma relação muito para muitos com usuários do tipo alunos que precisa ser inseridos por um picklist mas não consigo fazer inserir, excluir e editar.
No manageBean coloquei uma busca para turma e uma para alunos que as vezes funciona retorna LazyInitializationException e as vezes não e o problema da tela de cadastro/edição é carregar os alunos que já foram inseridos sem ter erros como java.lang.ClassCastException: com.universidadez.tcc.universidade.model.Turma cannot be cast to java.util.List
Irei colocar o código.
é um projeto de um sistema de comunicação acadêmico estou preso na tela da turma que tem uma relação muito para muitos com usuários do tipo alunos que precisa ser inseridos por um picklist mas não consigo fazer inserir, excluir e editar.
No manageBean coloquei uma busca para turma e uma para alunos que as vezes funciona retorna LazyInitializationException e as vezes não e o problema da tela de cadastro/edição é carregar os alunos que já foram inseridos sem ter erros como java.lang.ClassCastException: com.universidadez.tcc.universidade.model.Turma cannot be cast to java.util.List
Irei colocar o código.
Marcelo Rodrigues
Curtidas 0
Respostas
Marcelo Rodrigues
10/12/2016
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/templates/LayoutAluno.xhtml"
xmlns:o="http://omnifaces.org/ui">
<ui:define name="content">
<h1 class="aw-page-title">Lista de Turmas</h1>
<h:form id="frm2">
<f:metadata>
<f:viewAction action="#{turmaBean.lista}" />
</f:metadata>
<p:messages id="messages" autoUpdate="true" closable="true" />
<p:toolbar style="margin-top: 20px">
<p:toolbarGroup>
<p:button title="Criar uma Turma" value="Novo"
outcome="/turma/TurmaCadastro.xhtml" />
</p:toolbarGroup>
</p:toolbar>
<p:dataTable id="turmaTable"
value="#{turmaBean.turmas}" var="turma"
emptyMessage="Nenhuma turma encontrada." reflow="true"
style="margin-top: 10px" rows="10" paginator="true"
paginatorPosition="bottom">
<p:column headerText="Id" sortBy="#{turma.id}">
<h:outputText value="#{turma.id}" />
</p:column>
<p:column headerText="Professor" sortBy="#{turma.professor.id}">
<h:outputText value="#{turma.professor.nome}" />
</p:column>
<p:column headerText="Numero" sortBy="#{turma.numero}">
<h:outputText value="#{turma.numero}" />
</p:column>
<p:column headerText="Alunos"
style="width: 100px; text-align: center">
<p:commandButton icon="ui-icon-extlink" title="Alunos"
action="#{turmaBean.buscarAlunosParaTurma}" process="@this"
oncomplete="PF('mostraAlunos').show()" update="@form">
<f:setPropertyActionListener target="#{turmaBean.turma}"
value="#" />
</p:commandButton>
</p:column>
<p:column headerText="Fórum" sortBy="#{turma.forum.nome}">
<h:outputText value="#{turma.forum.nome}" />
</p:column>
<p:column headerText="Curso" sortBy="#{turma.curso.nome}">
<h:outputText value="#{turma.curso.nome}" />
</p:column>
<p:column>
<p:button title="Alterar" icon="ui-icon-pencil"
outcome="/turma/TurmaCadastro.xhtml">
<f:param name="turma" value="#{turma.id}" />
</p:button>
<p:commandButton title="Excluir" id="btnRemover" icon="ui-icon-trash"
oncomplete="PF('confirmacaoRemover').show()" process="@this"
update=":frm2">
<f:setPropertyActionListener value="#"
target="#{turmaBean.turma}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog widgetVar="confirmacaoRemover"
header="Excluir turma" resizable="false"
style="min-width: 300px" responsive="true">
<h:panelGroup id="removerPanel" layout="block" styleClass="ui-fluid">
<p:messages autoUpdate="true" />
<h:outputText
value="Tem certeza que deseja excluir a turma #{turmaBean.turma.numero }?" />
</h:panelGroup>
<p:button value="Não" onclick="PF('confirmacaoRemover').hide(); return false;" />
<p:commandButton value="Sim" action="#{turmaBean.remover}"
update=":frm2" process="@this"
oncomplete="PF('confirmacaoRemover').hide()" />
</p:dialog>
<p:dialog id="mostraAlunosDialog" header="Turmas"
widgetVar="mostraAlunos" resizable="false"
style="min-width: 480px" responsive="true">
<p:dataList value="#{turmaBean.turma.listaAlunos}"
var="aluno" itemType="disc" emptyMessage="Nenhuma turma encontrada."
>
<h:outputText
value="aluno id #{aluno.id } e nome #{aluno.nome}" />
</p:dataList>
</p:dialog>
</h:form>
</ui:define>
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/templates/LayoutAluno.xhtml"
xmlns:o="http://omnifaces.org/ui">
<ui:define name="content">
<h1 class="aw-page-title">Lista de Turmas</h1>
<h:form id="frm2">
<f:metadata>
<f:viewAction action="#{turmaBean.lista}" />
</f:metadata>
<p:messages id="messages" autoUpdate="true" closable="true" />
<p:toolbar style="margin-top: 20px">
<p:toolbarGroup>
<p:button title="Criar uma Turma" value="Novo"
outcome="/turma/TurmaCadastro.xhtml" />
</p:toolbarGroup>
</p:toolbar>
<p:dataTable id="turmaTable"
value="#{turmaBean.turmas}" var="turma"
emptyMessage="Nenhuma turma encontrada." reflow="true"
style="margin-top: 10px" rows="10" paginator="true"
paginatorPosition="bottom">
<p:column headerText="Id" sortBy="#{turma.id}">
<h:outputText value="#{turma.id}" />
</p:column>
<p:column headerText="Professor" sortBy="#{turma.professor.id}">
<h:outputText value="#{turma.professor.nome}" />
</p:column>
<p:column headerText="Numero" sortBy="#{turma.numero}">
<h:outputText value="#{turma.numero}" />
</p:column>
<p:column headerText="Alunos"
style="width: 100px; text-align: center">
<p:commandButton icon="ui-icon-extlink" title="Alunos"
action="#{turmaBean.buscarAlunosParaTurma}" process="@this"
oncomplete="PF('mostraAlunos').show()" update="@form">
<f:setPropertyActionListener target="#{turmaBean.turma}"
value="#" />
</p:commandButton>
</p:column>
<p:column headerText="Fórum" sortBy="#{turma.forum.nome}">
<h:outputText value="#{turma.forum.nome}" />
</p:column>
<p:column headerText="Curso" sortBy="#{turma.curso.nome}">
<h:outputText value="#{turma.curso.nome}" />
</p:column>
<p:column>
<p:button title="Alterar" icon="ui-icon-pencil"
outcome="/turma/TurmaCadastro.xhtml">
<f:param name="turma" value="#{turma.id}" />
</p:button>
<p:commandButton title="Excluir" id="btnRemover" icon="ui-icon-trash"
oncomplete="PF('confirmacaoRemover').show()" process="@this"
update=":frm2">
<f:setPropertyActionListener value="#"
target="#{turmaBean.turma}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog widgetVar="confirmacaoRemover"
header="Excluir turma" resizable="false"
style="min-width: 300px" responsive="true">
<h:panelGroup id="removerPanel" layout="block" styleClass="ui-fluid">
<p:messages autoUpdate="true" />
<h:outputText
value="Tem certeza que deseja excluir a turma #{turmaBean.turma.numero }?" />
</h:panelGroup>
<p:button value="Não" onclick="PF('confirmacaoRemover').hide(); return false;" />
<p:commandButton value="Sim" action="#{turmaBean.remover}"
update=":frm2" process="@this"
oncomplete="PF('confirmacaoRemover').hide()" />
</p:dialog>
<p:dialog id="mostraAlunosDialog" header="Turmas"
widgetVar="mostraAlunos" resizable="false"
style="min-width: 480px" responsive="true">
<p:dataList value="#{turmaBean.turma.listaAlunos}"
var="aluno" itemType="disc" emptyMessage="Nenhuma turma encontrada."
>
<h:outputText
value="aluno id #{aluno.id } e nome #{aluno.nome}" />
</p:dataList>
</p:dialog>
</h:form>
</ui:define>
GOSTEI 0
Marcelo Rodrigues
10/12/2016
package com.universidadez.tcc.universidade.controller;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import org.apache.log4j.Logger;
import org.primefaces.model.DualListModel;
import com.universidadez.tcc.login.model.Usuario;
import com.universidadez.tcc.login.repository.UsuarioRepository;
import com.universidadez.tcc.universidade.model.Turma;
import com.universidadez.tcc.universidade.repository.TurmaRepository;
import com.universidadez.tcc.util.JpaUtil;
@ManagedBean
@SessionScoped
public class TurmaBean implements Serializable {
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(TurmaBean.class);
private Turma turma;
private List<Turma> turmas;
private List<Usuario> alunos;
private List<Usuario> alunosSelect;
private DualListModel<Usuario> model;
public TurmaBean() {
this.turma = new Turma();
}
/**
*/
public void cadastrar() {
logger.info("iniciou o método cadastrar.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
FacesContext context = FacesContext.getCurrentInstance();
try {
tr.insere(turma);
FacesMessage mensagem = new FacesMessage("Turma " + turma.getNumero() + " cadastrada com sucesso.");
mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, mensagem);
this.turma = new Turma();
} catch (Exception e) {
FacesMessage mensagem = new FacesMessage("Problemas para cadastrar a Turma.");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensagem);
}
}
public void buscarAlunosParaTurma() {
logger.info("iniciou o método busca alunos para turma.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
turma = tr.buscarTurmaComAluno(turma.getId());
}
public void lista() {
logger.info("iniciou o método lista.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
this.turmas = tr.lista();
}
public void buscarTurmaComAlunos() {
logger.info("iniciou o método listaAlunos");
EntityManager em = JpaUtil.getEntityManager();
UsuarioRepository ur = new UsuarioRepository(em);
this.alunosSelect = turma.getListaAlunos();
this.alunos = ur.listaAlunos();
for (Usuario nome : alunos)
{
if(nome.equals(alunosSelect)){
alunos.remove(nome);
}
}
this.model = new DualListModel<>(
new ArrayList<>(alunos),
new ArrayList<>(alunosSelect)
);
}
public void alterar() {
logger.info("iniciou o método alterar.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
FacesContext context = FacesContext.getCurrentInstance();
try {
tr.alterar(turma);
FacesMessage mensagem = new FacesMessage("Turma " + turma.getNumero() + " Alterada com sucesso.");
mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, mensagem);
this.turma = new Turma();
} catch (Exception e) {
FacesMessage mensagem = new FacesMessage("Problemas para alterar a Turma.");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensagem);
}
}
public void remover() {
logger.info("iniciou o método remover.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
FacesContext context = FacesContext.getCurrentInstance();
try {
tr.excluir(turma);
FacesMessage mensagem = new FacesMessage("Turma " + turma.getNumero() + " excluida com sucesso.");
mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, mensagem);
this.turma = new Turma();
lista();
} catch (Exception e) {
FacesMessage mensagem = new FacesMessage("Problemas para remover a turma.");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensagem);
}
}
public Turma getTurma() {
return turma;
}
public void setTurma(Turma turma) {
this.turma = turma;
}
public List<Usuario> getAlunos() {
return alunos;
}
public void setAlunos(List<Usuario> alunos) {
this.alunos = alunos;
}
public List<Usuario> getAlunosSelect() {
return alunosSelect;
}
public void setAlunosSelect(List<Usuario> alunosSelect) {
this.alunosSelect = alunosSelect;
}
public DualListModel<Usuario> getModel() {
return model;
}
public void setModel(DualListModel<Usuario> model) {
this.model = model;
}
public List<Turma> getTurmas() {
return turmas;
}
public void setTurmas(List<Turma> turmas) {
this.turmas = turmas;
}
}
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import org.apache.log4j.Logger;
import org.primefaces.model.DualListModel;
import com.universidadez.tcc.login.model.Usuario;
import com.universidadez.tcc.login.repository.UsuarioRepository;
import com.universidadez.tcc.universidade.model.Turma;
import com.universidadez.tcc.universidade.repository.TurmaRepository;
import com.universidadez.tcc.util.JpaUtil;
@ManagedBean
@SessionScoped
public class TurmaBean implements Serializable {
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(TurmaBean.class);
private Turma turma;
private List<Turma> turmas;
private List<Usuario> alunos;
private List<Usuario> alunosSelect;
private DualListModel<Usuario> model;
public TurmaBean() {
this.turma = new Turma();
}
/**
*/
public void cadastrar() {
logger.info("iniciou o método cadastrar.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
FacesContext context = FacesContext.getCurrentInstance();
try {
tr.insere(turma);
FacesMessage mensagem = new FacesMessage("Turma " + turma.getNumero() + " cadastrada com sucesso.");
mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, mensagem);
this.turma = new Turma();
} catch (Exception e) {
FacesMessage mensagem = new FacesMessage("Problemas para cadastrar a Turma.");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensagem);
}
}
public void buscarAlunosParaTurma() {
logger.info("iniciou o método busca alunos para turma.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
turma = tr.buscarTurmaComAluno(turma.getId());
}
public void lista() {
logger.info("iniciou o método lista.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
this.turmas = tr.lista();
}
public void buscarTurmaComAlunos() {
logger.info("iniciou o método listaAlunos");
EntityManager em = JpaUtil.getEntityManager();
UsuarioRepository ur = new UsuarioRepository(em);
this.alunosSelect = turma.getListaAlunos();
this.alunos = ur.listaAlunos();
for (Usuario nome : alunos)
{
if(nome.equals(alunosSelect)){
alunos.remove(nome);
}
}
this.model = new DualListModel<>(
new ArrayList<>(alunos),
new ArrayList<>(alunosSelect)
);
}
public void alterar() {
logger.info("iniciou o método alterar.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
FacesContext context = FacesContext.getCurrentInstance();
try {
tr.alterar(turma);
FacesMessage mensagem = new FacesMessage("Turma " + turma.getNumero() + " Alterada com sucesso.");
mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, mensagem);
this.turma = new Turma();
} catch (Exception e) {
FacesMessage mensagem = new FacesMessage("Problemas para alterar a Turma.");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensagem);
}
}
public void remover() {
logger.info("iniciou o método remover.");
EntityManager em = JpaUtil.getEntityManager();
TurmaRepository tr = new TurmaRepository(em);
FacesContext context = FacesContext.getCurrentInstance();
try {
tr.excluir(turma);
FacesMessage mensagem = new FacesMessage("Turma " + turma.getNumero() + " excluida com sucesso.");
mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, mensagem);
this.turma = new Turma();
lista();
} catch (Exception e) {
FacesMessage mensagem = new FacesMessage("Problemas para remover a turma.");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensagem);
}
}
public Turma getTurma() {
return turma;
}
public void setTurma(Turma turma) {
this.turma = turma;
}
public List<Usuario> getAlunos() {
return alunos;
}
public void setAlunos(List<Usuario> alunos) {
this.alunos = alunos;
}
public List<Usuario> getAlunosSelect() {
return alunosSelect;
}
public void setAlunosSelect(List<Usuario> alunosSelect) {
this.alunosSelect = alunosSelect;
}
public DualListModel<Usuario> getModel() {
return model;
}
public void setModel(DualListModel<Usuario> model) {
this.model = model;
}
public List<Turma> getTurmas() {
return turmas;
}
public void setTurmas(List<Turma> turmas) {
this.turmas = turmas;
}
}
GOSTEI 0
Marcelo Rodrigues
10/12/2016
package com.universidadez.tcc.universidade.model;
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
import com.universidadez.tcc.forum.model.Forum;
import com.universidadez.tcc.login.model.Usuario;
@NamedQueries({ @NamedQuery(name = "Turma.lista", query = "SELECT t FROM Turma t")})
@Entity
@Table(name = "tb_turma")
public class Turma implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private Usuario professor;
private String numero;
private List<Usuario> listaAlunos;
private Forum forum;
private Curso curso;
public Turma(){}
public Turma(Long id, Usuario professor, String numero, List<Usuario> listaAlunos, Curso curso, Forum forum) {
this.id = id;
this.professor = professor;
this.numero = numero;
this.listaAlunos = (List<Usuario>)listaAlunos;
this.curso = curso;
this.forum = forum;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(optional = true,fetch = FetchType.EAGER)
public Usuario getProfessor() {
return professor;
}
public void setProfessor(Usuario professor) {
this.professor = professor;
}
@PrimaryKeyJoinColumn
@OneToOne(cascade = CascadeType.ALL , optional = true, orphanRemoval = true,fetch = FetchType.EAGER)
@JoinColumn(name = "id_forum")
public Forum getForum() {
return forum;
}
public void setForum(Forum forum) {
this.forum = forum;
}
@Size(min= 1,max= 5)
@NotEmpty
@Column(length = 5,name = "numero_turma", unique = true )
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
@ManyToMany(fetch = FetchType.LAZY )
@JoinTable(name = "turma_aluno_lista", joinColumns = @JoinColumn(name = "codigo_Turma"), inverseJoinColumns = @JoinColumn(name = "codigo_aluno"))
public List<Usuario> getListaAlunos() {
return listaAlunos;
}
public void setListaAlunos(List<Usuario> listaAlunos) {
this.listaAlunos = listaAlunos;
}
@ManyToOne
@JoinColumn(name="curso_id")
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((curso == null) ? 0 : curso.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((numero == null) ? 0 : numero.hashCode());
result = prime * result + ((professor == null) ? 0 : professor.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Turma other = (Turma) obj;
if (curso == null) {
if (other.curso != null)
return false;
} else if (!curso.equals(other.curso))
return false;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (numero == null) {
if (other.numero != null)
return false;
} else if (!numero.equals(other.numero))
return false;
if (professor == null) {
if (other.professor != null)
return false;
} else if (!professor.equals(other.professor))
return false;
return true;
}
}
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
import com.universidadez.tcc.forum.model.Forum;
import com.universidadez.tcc.login.model.Usuario;
@NamedQueries({ @NamedQuery(name = "Turma.lista", query = "SELECT t FROM Turma t")})
@Entity
@Table(name = "tb_turma")
public class Turma implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private Usuario professor;
private String numero;
private List<Usuario> listaAlunos;
private Forum forum;
private Curso curso;
public Turma(){}
public Turma(Long id, Usuario professor, String numero, List<Usuario> listaAlunos, Curso curso, Forum forum) {
this.id = id;
this.professor = professor;
this.numero = numero;
this.listaAlunos = (List<Usuario>)listaAlunos;
this.curso = curso;
this.forum = forum;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(optional = true,fetch = FetchType.EAGER)
public Usuario getProfessor() {
return professor;
}
public void setProfessor(Usuario professor) {
this.professor = professor;
}
@PrimaryKeyJoinColumn
@OneToOne(cascade = CascadeType.ALL , optional = true, orphanRemoval = true,fetch = FetchType.EAGER)
@JoinColumn(name = "id_forum")
public Forum getForum() {
return forum;
}
public void setForum(Forum forum) {
this.forum = forum;
}
@Size(min= 1,max= 5)
@NotEmpty
@Column(length = 5,name = "numero_turma", unique = true )
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
@ManyToMany(fetch = FetchType.LAZY )
@JoinTable(name = "turma_aluno_lista", joinColumns = @JoinColumn(name = "codigo_Turma"), inverseJoinColumns = @JoinColumn(name = "codigo_aluno"))
public List<Usuario> getListaAlunos() {
return listaAlunos;
}
public void setListaAlunos(List<Usuario> listaAlunos) {
this.listaAlunos = listaAlunos;
}
@ManyToOne
@JoinColumn(name="curso_id")
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((curso == null) ? 0 : curso.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((numero == null) ? 0 : numero.hashCode());
result = prime * result + ((professor == null) ? 0 : professor.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Turma other = (Turma) obj;
if (curso == null) {
if (other.curso != null)
return false;
} else if (!curso.equals(other.curso))
return false;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (numero == null) {
if (other.numero != null)
return false;
} else if (!numero.equals(other.numero))
return false;
if (professor == null) {
if (other.professor != null)
return false;
} else if (!professor.equals(other.professor))
return false;
return true;
}
}
GOSTEI 0