Hibernate jpa 4.3 não salva em duas tabelas e nao traz consulta com view

6 respostas
jsf
ajoser51

Ola, Pessoal

Estou com problema, estou tentado salvar em duas tabelas com Hibernate JPA e JSF sou novo em programação estou tentado JPQL e nao sei o que pode estar acontecendo e ele salva em uma tabela apenas
Se alguém puder ajudar.

Obrigado

Segue o codigo

fev 19, 2018 5:00:45 PM org.apache.catalina.core.StandardContext reload

INFORMAÇÕES: Reloading Context with name [/FMarieta] has started

fev 19, 2018 5:00:45 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc

ADVERTÊNCIA: The web application [FMarieta] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

fev 19, 2018 5:00:45 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads

ADVERTÊNCIA: The web application [FMarieta] appears to have started a thread named [pool-10-thread-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

sun.misc.Unsafe.park(Native Method)

java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)

java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)

java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)

java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)

java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)

java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

java.lang.Thread.run(Unknown Source)

fev 19, 2018 5:00:45 PM org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks

GRAVE: The web application [FMarieta] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@240fcf8]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

fev 19, 2018 5:00:48 PM org.apache.jasper.servlet.TldScanner scanJars

INFORMAÇÕES: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

fev 19, 2018 5:00:48 PM com.sun.faces.config.ConfigureListener contextInitialized

INFORMAÇÕES: Inicializando Mojarra 2.0.11 (SNAPSHOT 20130213-1632) para o contexto '/FMarieta

fev 19, 2018 5:00:48 PM com.sun.faces.spi.InjectionProviderFactory createInstance

INFORMAÇÕES: JSF1048: Anotações PostConstruct/PreDestroy presentes.  Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.

log4j:WARN No appenders could be found for logger (org.jboss.logging).

log4j:WARN Please initialize the log4j system properly.

fev 19, 2018 5:00:49 PM org.primefaces.webapp.PostConstructApplicationEventListener processEvent

INFORMAÇÕES: Running on PrimeFaces 5.0

fev 19, 2018 5:00:49 PM org.apache.catalina.core.StandardContext reload

INFORMAÇÕES: Reloading Context with name [/FMarieta] is completed

fev 19, 2018 5:01:07 PM com.sun.faces.facelets.impl.DefaultFacelet refresh

INFORMAÇÕES: Facelet[/sistema.xhtml] was modified @ 17:01:07, flushing component applied @ 17:00:41

fev 19, 2018 5:01:07 PM com.sun.faces.facelets.impl.DefaultFacelet refresh

INFORMAÇÕES: Facelet[/sistema.xhtml] was modified @ 17:01:07, flushing component applied @ 17:00:41

fev 19, 2018 5:01:07 PM com.sun.faces.facelets.impl.DefaultFacelet refresh

INFORMAÇÕES: Facelet[/sistema.xhtml] was modified @ 17:01:07, flushing component applied @ 17:00:41

fev 19, 2018 5:01:07 PM com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit

GRAVE: javax.faces.FacesException: No SearchExpressionResolver available for expression @form1

</h:head>
<h:body>

CADASTRO ASSISTIDOS

<h:panelGrid columns="1" cellpadding="3" style="margin-bottom:10px">
        
        <h:outputLabel value="*Nome Completo: "/>
        <p:inputText id="nome" value="#{mb.assistidos.nome}" requiredMessage="campo obrigatorio" label="nome" size="50"/>
    	<p:watermark for="nome" value="Entre com o nome"/>
    	 	
    	<h:outputLabel value="*Nome da Mãe: "/>
    	<p:inputText id="nomeMae" value="#{mb.assistidos.nomeMae}" requiredMessage="campo obrigatorio" label="nomeMae" size="50"/>
    	<p:watermark for="nomeMae" value="Entre com o nome da Mãe"/>
  
        <h:outputLabel value="*Email: "/>
        <p:inputText id="email" value="#{mb.assistidos.email}" requiredMessage="campo obrigatorio" label="email" size="50" />
        <p:watermark for="email" value="Entre com o email"/>
  
        <p:outputLabel for="sexo" value="*Sexo:" />
    	<p:selectOneMenu id="sexo" value="#{mb.assistidos.sexo}" style="width:125px">
        <f:selectItem itemLabel="Selecione" itemValue="" />
        <f:selectItem itemLabel="Masculino" itemValue="Masculino" />
        <f:selectItem itemLabel="Feminino" itemValue="Feminino" />
        </p:selectOneMenu>

        <h:outputLabel value="*CPF: "/>
        <p:inputText id="documento" value="#{mb.assistidos.documento}" requiredMessage="campo obrigatorio" label="documento" size="40"/>
        <p:watermark for="documento" value="Entre com o CPF"/>  

        <h:outputLabel value="Telefone Fixo: "/>
        <p:inputText id="telefone1" value="#{mb.assistidos.telefone1}" label="telefone1" size="30"/>
        <p:watermark for="telefone1" value="Entre com telefone fixo"/>

        <h:outputLabel value="*Telefone Celular: "/>
        <p:inputText id="telefone2" value="#{mb.assistidos.telefone2}" requiredMessage="campo obrigatorio" label="telefone2" size="30"/>
        <p:watermark for="telefone2" value="Entre com o celular"/>

        <p:outputLabel for="dataNascimento" value="Data Nascimento: "/>
    	<p:calendar id="dataNascimento" value="#{mb.assistidos.dataNascimento}" locale="br" navigator="true" pattern="dd/MM/yyyy"/>

        </h:panelGrid>
        </h:form>
    </p:tab>
    
    <p:tab title="Endereco">
  
      <h:form id="form2">
    	<p:messages id="messages" showDetail="true"/>
        <h:panelGrid columns="3" cellpadding="10" style="margin-bottom:10px">
         
        <h:outputLabel value="*Logradouro: "/>
        <p:inputText id="logradouro" value="#{mb.endereco.logradouro}" label="logradouro" requiredMessage="campo obrigatorio" size="60"/>
        <p:watermark for="logradouro" value="Entre com a rua"/>
        
        <h:outputLabel value="*Numero: "/>
        <p:inputText id="numero" value="#{mb.endereco.numero}" label="numero" requiredMessage="campo obrigatorio" size="20"/>
        <p:watermark for="numero" value="Entre com o numero"/>
        
        <h:outputLabel value="Complemento: "/>
        <p:inputText id="complemento" value="#{mb.endereco.complemento}" label="complemento" size="30"/>
        <p:watermark for="complemento" value="Entre com o complemento"/>
        
        <h:outputLabel value="*Bairro: "/>
        <p:inputText id="bairro" value="#{mb.endereco.bairro}" label="bairro"  requiredMessage="campo obrigatorio" size="30"/>
        <p:watermark for="bairro" value="Entre com o bairro"/>
        
        <h:outputLabel value="*Cidade: "/>
        <p:inputText id="cidade" value="#{mb.endereco.cidade}" label="cidade"  requiredMessage="campo obrigatorio" size="40"/>
        <p:watermark for="cidade" value="Entre com a cidade" />
        
        <h:outputLabel value="*Estado: "/>
        <p:inputText id="estado" value="#{mb.endereco.estado}" label="estado"  requiredMessage="campo obrigatorio" size="10"/>
        <p:watermark for="estado" value="Estado xx "/>
        
        <h:outputLabel value="*CEP: "/>
        <p:inputText id="cep" value="#{mb.endereco.cep}" label="cep"  requiredMessage="campo obrigatorio" size="10"/>
        <p:watermark for="cep" value="cep xxxxx-xxx"/>
 
        </h:panelGrid>
		<p:commandButton value="Gravar" id="gravar" update="@form1,@form2,@form3" actionListener="#{mb.gravar}" ajax="true" styleClass="ui-priority-primary" />
         <p:growl></p:growl>
        </h:form>
      
        
    </p:tab>
    <p:tab title="Consulta">
    <h:form id="form3">
        <p:dataTable value="#{mb.dtoAssistidosEnderecos}" var="linha" rows="3" paginator="true">
        
        <p:column headerText="idAsistidos: " filterBy="#{linha.idAsistidos}"><h:outputText value="#{linha.idAsistidos}"/></p:column>
        
        <p:column headerText="Nome: " filterBy="#{linha.nome}"><h:outputText value="#{linha.nome}"/></p:column>
        
        <p:column headerText="Nome da Mãe: "><h:outputText value="#{linha.nomeMae}"/></p:column>
        
        <p:column headerText="Email: "><h:outputText value="#{linha.email}"/></p:column>
        
        <p:column headerText="Sexo: "><h:outputText value="#{linha.sexo}"/></p:column>
        
         <p:column headerText="Documento: "><h:outputText value="#{linha.documento}"/></p:column>
         
         <p:column headerText="Telefone Fixo: "><h:outputText value="#{linha.telefone1}"/></p:column>
         
         <p:column headerText="Telefone Celular: "><h:outputText value="#{linha.telefone2}"/></p:column>
         
         <p:column headerText="Data Nascimento: "><h:outputText value="#{linha.dataNascimento}"/></p:column>
         
        <p:column headerText="Logradouro: "><h:outputText value="#{linha.logradouro}"/></p:column>
        
        <p:column headerText="Numero: "><h:outputText value="#{linha.numero}"/></p:column>
        
        <p:column headerText="Complemento: "><h:outputText value="#{linha.complemento}"/></p:column>
        
        <p:column headerText="Bairro "><h:outputText value="#{linha.bairro}"/></p:column>
        
         <p:column headerText="Cidade "><h:outputText value="#{linha.cidade}"/></p:column>
         
          <p:column headerText="Estado "><h:outputText value="#{linha.estado}"/></p:column>
          
           <p:column headerText="CEP "><h:outputText value="#{linha.cep}"/></p:column>
        
        </p:dataTable>
    </h:form>
    </p:tab>
</p:tabView>

</h:body>

package persistence;

import java.util.List;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.Transaction;
import dto.DtoAssistidosEndereco;

import entity.Assistidos;

import entity.Endereco;

public class AssistidosDao {

Session session;
Transaction transaction;
Query query;

public void gravarDao(Assistidos a, Endereco e)throws Exception{
	
	session=HibernateUtil.getSessionFactory().openSession();
	transaction= session.beginTransaction();
	session.save(a);
	e.setAssistidos(a);
	session.save(e);
	transaction.commit();
	session.close();
	
}

public void excluirDao(Assistidos a, Endereco e)throws Exception{
	
	session=HibernateUtil.getSessionFactory().openSession();
	transaction=session.beginTransaction();
	session.delete(e);
	e.setAssistidos(a);
	transaction.commit();
	if (session !=null) {
		session.close();
		
	}
}

public List<DtoAssistidosEndereco> findAll(){
	
	session=HibernateUtil.getSessionFactory().openSession();
	List<DtoAssistidosEndereco>lista =session.createQuery("SELECT * FROM fundacao ").list();
	session.close();
	return lista;
}

}

package manager;

import java.util.List;

import javax.faces.application.FacesMessage;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.RequestScoped;

import javax.faces.context.FacesContext;

import dto.DtoAssistidosEndereco;

import entity.Assistidos;

import entity.Endereco;

import persistence.AssistidosDao;
@ManagedBean(name=mb)

@RequestScoped

public class ManagerBean {
private Assistidos assistidos;
private Endereco endereco;
private AssistidosDao dao;
private List<DtoAssistidosEndereco> dtoAssistidosEnderecos;


public ManagerBean() {
	dao = new AssistidosDao();
	assistidos= new Assistidos();
	endereco = new Endereco();
}

public Endereco getEndereco() {
	return endereco;
}

public void setEndereco(Endereco endereco) {
	this.endereco = endereco;
}

public Assistidos getAssistidos() {
	return assistidos;
}

public void setAssistidos(Assistidos assistidos) {
	this.assistidos = assistidos;
}

public AssistidosDao getDao() {
	return dao;
}

public void setDao(AssistidosDao dao) {
	this.dao = dao;
}

public List<DtoAssistidosEndereco> getDtoAssistidosEnderecos() {
	try {
		if (dao == null) {
			dao= new AssistidosDao();
		}
		dtoAssistidosEnderecos = new AssistidosDao().findAll();
	} catch (Exception ex) {
		ex.printStackTrace();
	}
	
	return dtoAssistidosEnderecos;

}

public void setDtoAssistidosEnderecos(List<DtoAssistidosEndereco> dtoAssistidosEnderecos) {
	this.dtoAssistidosEnderecos = dtoAssistidosEnderecos;
}

public void gravar() {
	FacesContext fc = FacesContext.getCurrentInstance();
	try {
		if (dao==null) {
			dao = new AssistidosDao();
		}
		dao.gravarDao(assistidos, endereco);
		assistidos = new Assistidos();
		endereco = new Endereco();
		fc.addMessage(null, new FacesMessage("Dados Gravados"));
	} catch (Exception ex) {
		fc.addMessage(null, new FacesMessage("Error"+ex.getMessage()));
	}
}

public void excluir() {
	FacesContext fc = FacesContext.getCurrentInstance();
	try {
		if (dao==null) {
			dao=new AssistidosDao();
		}
		dao.excluirDao(assistidos, endereco);
		assistidos =new Assistidos();
		endereco = new Endereco();
		fc.addMessage(null, new FacesMessage("Dados Excluidos"));
	} catch (Exception ex) {
		fc.addMessage(null, new FacesMessage());
	}
}

}

package dto;

import entity.Assistidos;
import entity.Endereco;

public class DtoAssistidosEndereco {

private Assistidos assistidos;
private Endereco endereco;

public DtoAssistidosEndereco() {
}

public DtoAssistidosEndereco(Assistidos assistidos, Endereco endereco) {
	this.assistidos = assistidos;
	this.endereco = endereco;
}
@Override
public String toString() {
	return "DtoAssistidosEndereco [assistidos=" + assistidos + ", endereco=" + endereco + "]";
}

public Assistidos getAssistidos() {
	return assistidos;
}
public void setAssistidos(Assistidos assistidos) {
	this.assistidos = assistidos;
}
public Endereco getEndereco() {
	return endereco;
}
public void setEndereco(Endereco endereco) {
	this.endereco = endereco;
}

}

6 Respostas

D

@ajoser51 , poderia postar o código completo do xhtml ?

caso ja esteja completo eu notei uma coisa estranha, você esta declarando a TAG form que contem o id form2 e form3… onde esta o form1 ?

ajoser51

Ola, Diogo

Segue o xhtml completo, porem acho que com relacao a view andei lendo que o hibernate le a view com uma tabela mas, ainda nao sei como fazer.

O outro problema é que tenho duas tabelas assistidos e endereco, o endereco grava mas a tabela assistidos fica toda null.

Obrigado pela atenção.

</h:head>
<h:body>

CADASTRO ASSISTIDOS

<h:panelGrid columns="1" cellpadding="3" style="margin-bottom:10px">
        
        <h:outputLabel value="*Nome Completo: "/>
        <p:inputText id="nome" value="#{mb.assistidos.nome}" requiredMessage="campo obrigatorio" label="nome" size="50"/>
    	<p:watermark for="nome" value="Entre com o nome"/>
    	 	
    	<h:outputLabel value="*Nome da Mãe: "/>
    	<p:inputText id="nomeMae" value="#{mb.assistidos.nomeMae}" requiredMessage="campo obrigatorio" label="nomeMae" size="50"/>
    	<p:watermark for="nomeMae" value="Entre com o nome da Mãe"/>
  
        <h:outputLabel value="*Email: "/>
        <p:inputText id="email" value="#{mb.assistidos.email}" requiredMessage="campo obrigatorio" label="email" size="50" />
        <p:watermark for="email" value="Entre com o email"/>
  
        <p:outputLabel for="sexo" value="*Sexo:" />
    	<p:selectOneMenu id="sexo" value="#{mb.assistidos.sexo}" style="width:125px">
        <f:selectItem itemLabel="Selecione" itemValue="" />
        <f:selectItem itemLabel="Masculino" itemValue="Masculino" />
        <f:selectItem itemLabel="Feminino" itemValue="Feminino" />
        </p:selectOneMenu>

        <h:outputLabel value="*CPF: "/>
        <p:inputText id="documento" value="#{mb.assistidos.documento}" requiredMessage="campo obrigatorio" label="documento" size="40"/>
        <p:watermark for="documento" value="Entre com o CPF"/>  

        <h:outputLabel value="Telefone Fixo: "/>
        <p:inputText id="telefone1" value="#{mb.assistidos.telefone1}" label="telefone1" size="30"/>
        <p:watermark for="telefone1" value="Entre com telefone fixo"/>

        <h:outputLabel value="*Telefone Celular: "/>
        <p:inputText id="telefone2" value="#{mb.assistidos.telefone2}" requiredMessage="campo obrigatorio" label="telefone2" size="30"/>
        <p:watermark for="telefone2" value="Entre com o celular"/>

        <p:outputLabel for="dataNascimento" value="Data Nascimento: "/>
    	<p:calendar id="dataNascimento" value="#{mb.assistidos.dataNascimento}" locale="br" navigator="true" pattern="dd/MM/yyyy"/>

        </h:panelGrid>
        </h:form>
    </p:tab>
    
    <p:tab title="Endereco">
  
      <h:form id="form2">
    	<p:messages id="messages" showDetail="true"/>
        <h:panelGrid columns="3" cellpadding="10" style="margin-bottom:10px">
         
        <h:outputLabel value="*Logradouro: "/>
        <p:inputText id="logradouro" value="#{mb.endereco.logradouro}" label="logradouro" requiredMessage="campo obrigatorio" size="60"/>
        <p:watermark for="logradouro" value="Entre com a rua"/>
        
        <h:outputLabel value="*Numero: "/>
        <p:inputText id="numero" value="#{mb.endereco.numero}" label="numero" requiredMessage="campo obrigatorio" size="20"/>
        <p:watermark for="numero" value="Entre com o numero"/>
        
        <h:outputLabel value="Complemento: "/>
        <p:inputText id="complemento" value="#{mb.endereco.complemento}" label="complemento" size="30"/>
        <p:watermark for="complemento" value="Entre com o complemento"/>
        
        <h:outputLabel value="*Bairro: "/>
        <p:inputText id="bairro" value="#{mb.endereco.bairro}" label="bairro"  requiredMessage="campo obrigatorio" size="30"/>
        <p:watermark for="bairro" value="Entre com o bairro"/>
        
        <h:outputLabel value="*Cidade: "/>
        <p:inputText id="cidade" value="#{mb.endereco.cidade}" label="cidade"  requiredMessage="campo obrigatorio" size="40"/>
        <p:watermark for="cidade" value="Entre com a cidade" />
        
        <h:outputLabel value="*Estado: "/>
        <p:inputText id="estado" value="#{mb.endereco.estado}" label="estado"  requiredMessage="campo obrigatorio" size="10"/>
        <p:watermark for="estado" value="Estado xx "/>
        
        <h:outputLabel value="*CEP: "/>
        <p:inputText id="cep" value="#{mb.endereco.cep}" label="cep"  requiredMessage="campo obrigatorio" size="10"/>
        <p:watermark for="cep" value="cep xxxxx-xxx"/>
 
        </h:panelGrid>
		<p:commandButton value="Gravar" id="gravar" update="@(form1)@(form2)@(form3)" actionListener="#{mb.gravar}" ajax="true" styleClass="ui-priority-primary" />
         <p:growl></p:growl>
        </h:form>
      
        
    </p:tab>
    <p:tab title="Consulta">
    <h:form id="form3">
        <p:dataTable value="#{mb.dtoAssistidosEnderecos}" var="linha" rows="3" paginator="true">
        
        <p:column headerText="idAsistidos: " filterBy="#{linha.idAsistidos}"><h:outputText value="#{linha.idAsistidos}"/></p:column>
        
        <p:column headerText="Nome: " filterBy="#{linha.nome}"><h:outputText value="#{linha.nome}"/></p:column>
        
        <p:column headerText="Nome da Mãe: "><h:outputText value="#{linha.nomeMae}"/></p:column>
        
        <p:column headerText="Email: "><h:outputText value="#{linha.email}"/></p:column>
        
        <p:column headerText="Sexo: "><h:outputText value="#{linha.sexo}"/></p:column>
        
         <p:column headerText="Documento: "><h:outputText value="#{linha.documento}"/></p:column>
         
         <p:column headerText="Telefone Fixo: "><h:outputText value="#{linha.telefone1}"/></p:column>
         
         <p:column headerText="Telefone Celular: "><h:outputText value="#{linha.telefone2}"/></p:column>
         
         <p:column headerText="Data Nascimento: "><h:outputText value="#{linha.dataNascimento}"/></p:column>
         
        <p:column headerText="Logradouro: "><h:outputText value="#{linha.logradouro}"/></p:column>
        
        <p:column headerText="Numero: "><h:outputText value="#{linha.numero}"/></p:column>
        
        <p:column headerText="Complemento: "><h:outputText value="#{linha.complemento}"/></p:column>
        
        <p:column headerText="Bairro "><h:outputText value="#{linha.bairro}"/></p:column>
        
         <p:column headerText="Cidade "><h:outputText value="#{linha.cidade}"/></p:column>
         
          <p:column headerText="Estado "><h:outputText value="#{linha.estado}"/></p:column>
          
           <p:column headerText="CEP "><h:outputText value="#{linha.cep}"/></p:column>
        
        </p:dataTable>
    </h:form>
    </p:tab>
</p:tabView>

</h:body>

ajoser51

Ah, o form1 esta no código não sei porque ao postar ele não sai aqui.

ajoser51

No caso da gravação o Hibernate imprime o sql, porem grava apenas em uma tabela

INFORMAÇÕES: Starting ProtocolHandler [“ajp-nio-8009”]
fev 19, 2018 10:13:57 PM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 10254 ms
Hibernate:
insert
into
assistidos
(dataNascimento, documento, email, nome, nomeMae, sexo, telefone1, telefone2)
values
(?, ?, ?, ?, ?, ?, ?, ?)
Hibernate:
insert
into
endereco
(id_Assistidos, bairro, cep, cidade, complemento, estado, logradouro, numero)
values
(?, ?, ?, ?, ?, ?, ?, ?)


D

Ok …

Notei que na verdade os dos dados foram salvos porem parece que o objeto estava vazio na hora de salvar. (note que o id foi gerado a tabela deve esta com AUTO_INCREMENT).

Faça o seguinte teste … coloca um breakpoint na primeira linha do método gravarDao e faça um debug… verifique se o objeto ‘a’ (que no caso e Assistidos) esta com valores dentro dele (exemplo telefone , sexo e etc…) se não estiver pode ser que a tela não esteja passando os valores para o objeto.

Caso os valores estejam la posta o código do método “e.setAssistidos(a);”, pq caso esse método esteja alterando o objeto ‘a’ essa alteração também vai se refletir no banco de dados (uma vez que a transação ainda esta aberta)

Como ultima solução vc pode tenta usar uma transações diferentes para salvar cada objeto, o código ficaria assim :

public void gravarDao(Assistidos a, Endereco e) throws Exception {
    session = HibernateUtil.getSessionFactory().openSession();

transaction = session.beginTransaction();
session.save(a);
    transaction.commit();

e.setAssistidos(a);

    transaction = session.beginTransaction();
    session.save(e);
transaction.commit();

if (session !=null) {
	session.close();
	
}

}

ajoser51

O método referido é esse:

public void gravarDao(Assistidos a, Endereco e)throws Exception{

session=HibernateUtil.getSessionFactory().openSession();
transaction= session.beginTransaction();
session.save(a);
e.setAssistidos(a);
session.save(e);
transaction.commit();
session.close();

}

Criado 19 de fevereiro de 2018
Ultima resposta 20 de fev. de 2018
Respostas 6
Participantes 2