LOG:
Info: Periodo antigo:0
Info: Periodo antigo2:modelo.TbPeriodos[ codigo=0 ]
Warning: java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: modelo.TbPeriodos[ codigo=0 ].
Warning: java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: modelo.TbPeriodos[ codigo=0 ].
A pagina Web:
<p:fieldset legend="Confirmar Unidades Curriculares ao Aluno">
<p:panel>
<p:messages id="messagens" closable="true"/>
<h:panelGrid columns="2" width="70%" cellspacing="3" cellpadding="2" style=" font-family: cursive; alignment-adjust: central; ">
<h:outputLabel value="Aluno" for="aluno"/>
<h:outputLabel style="font-weight: bold;" id="aluno" value="#{confirmacaoController.confirmacoesModelo.codigoMatricula.codigoAluno.preIncricao.nomeCompleto}"/>
<h:outputLabel value="Unidade Curricular" for="uc"/>
<p:selectOneMenu id="uc" value="#{mudancaTurmaHistoricoControllerr.uc}" style=" border-radius:10%;font-weight:700;width:100%">
<f:selectItems value="#{confirmacaoController.listarConfirmacoesCodigoConfirmacao(confirmacaoController.matricula)}" var="al"
itemLabel="#{al.gradeCurricularDisciplina.codigoDisciplina.designacao}"
itemValue="#{al.gradeCurricularDisciplina.codigo}" />
<p:ajax event="change" update="ta"/>
<p:ajax event="change" update="pa"/>
</p:selectOneMenu>
<h:outputLabel value="Turma Atual" for="ta"/>
<p:selectOneMenu id="ta" disabled="true" value="#{mudancaTurmaHistoricoControllerr.turmaAntiga}" style=" border-radius:10%;font-weight:700;width:100%">
<f:selectItems itemDisabled="true" value="#{confirmacaoController.listarConfirmacoesCodigoConfirmacaoRedundate(mudancaTurmaHistoricoControllerr.uc)}" var="turmaAtual"
itemLabel="#{turmaAtual.codigoTurma.designacao}"
itemValue="#{turmaAtual.codigoTurma.codigo}" />
</p:selectOneMenu>
<h:outputLabel value="Periodo Atual" for="pa"/>
<p:selectOneMenu id="pa" disabled="true" immediate="true" value="#{mudancaTurmaHistoricoControllerr.periodoAntigo}" style=" border-radius:10%;font-weight:700;width:100%">
<f:selectItems itemDisabled="true" value="#{confirmacaoController.listarConfirmacoesCodigoConfirmacaoRedundate(mudancaTurmaHistoricoControllerr.uc)}" var="periodoAtual"
itemLabel="#{periodoAtual.codigoTurma.codigoPeriodo.designacao}"
itemValue="#{periodoAtual.codigoTurma.codigoPeriodo.codigo}"/>
</p:selectOneMenu>
<h:outputLabel value="Nova Turma" for="turma"/>
<p:selectOneMenu id="turma" value="#{mudancaTurmaHistoricoControllerr.turmaNova}" style=" border-radius:10%;font-weight:700;width:100%">
<f:selectItems value="#{turmaController.listar()}" var="turma"
itemLabel="#{turma.designacao}"
itemValue="#{turma.codigo}" />
<p:ajax event="change" update="periodo"/>
</p:selectOneMenu>
<h:outputLabel value="Novo Periodo" for="periodo"/>
<p:selectOneMenu id="periodo" value="#{mudancaTurmaHistoricoControllerr.periodoNovo}" style=" border-radius:10%;font-weight:700;width:100%">
<f:selectItems value="#{turmaController.listarTurmasPorCodigoMesmo(mudancaTurmaHistoricoControllerr.turmaNova)}" var="periodo"
itemLabel="#{periodo.codigoPeriodo.designacao}"
itemValue="#{periodo.codigoPeriodo.codigo}" />
</p:selectOneMenu>
</h:panelGrid>
</p:panel>
<p:panel>
<p:commandButton ajax="false"
value="Efetuar Mudança de Turma/Periodo"
actionListener="#{mudancaTurmaHistoricoControllerr.novoRegisto()}">
<f:setPropertyActionListener value="#{loginController.pegarNomeLogado.codigo}" target="#{mudancaTurmaHistoricoControllerr.utilizador}" />
</p:commandButton>
<p:commandButton value="Cancelar"
type="reset"/>
</p:panel>
</p:fieldset>
O managed Bean:
public void novoRegisto() {
FacesContext facesContext = FacesContext.getCurrentInstance();
tbMudancaoTurmaHistorico.setAnoLectivo(new TbAnoLectivo(1));
tbMudancaoTurmaHistorico.setCodigoAluno(new TbConfirmacoes(alunoPorMatricula(getAluno())));
System.out.println("Periodo antigo:"+periodoAntigo);
tbMudancaoTurmaHistorico.setPeriodoAntigo(new TbPeriodos(getPeriodoAntigo()));
System.out.println("Periodo antigo2:"+tbMudancaoTurmaHistorico.getPeriodoAntigo());
tbMudancaoTurmaHistorico.setTurmaAntigo(new TbTurmas(getTurmaAntiga()));
tbMudancaoTurmaHistorico.setTurmaNova(new TbTurmas(getTurmaNova()));
tbMudancaoTurmaHistorico.setPeriodoNovo(new TbPeriodos(getPeriodoNovo()));
tbMudancaoTurmaHistorico.setUc(new TbGradeCurricular(getUc()));
tbMudancaoTurmaHistorico.setDataRegisto(getData().getDataActual());
tbMudancaoTurmaHistorico.setUtilizador(new TbUtilizadores(getUtilizador()));
tbMudancaoTurmaHistoricoFacade.create(tbMudancaoTurmaHistorico);
tbComfirmacaoTemp=tbConfirmacoesFacade.find(alunoPorMatricula(getAluno()));
tbComfirmacaoTemp.setCodigoTurma(tbMudancaoTurmaHistorico.getTurmaNova());
tbConfirmacoesFacade.edit(tbComfirmacaoTemp);
facesContext.addMessage(null, new FacesMessage("Dados Registados com sucesso"));
}