Estou com dificuldades de salvar um cadastro que tem dados que vao para tabelas diferentes… o que acontece é o seguinte, estou usando hibernate
tenho um cadastro de pousada, porem a maioria dos dados vao para a tabela pousadas, menos o endereço, que vai para uma tabela chamada uf outra cidade e outra bairro.
pousadaface
package projetoPousadas.faces;
import java.util.LinkedList;
import java.util.List;
import javax.faces.model.SelectItem;
import projetoPousadas.dao.PousadaDAO;
import projetoPousadas.dao.UfDAO;
import projetoPousadas.entity.Pousada;
import projetoPousadas.entity.Uf;
/**
*
-
@author Rafael <em>/ public class PousadaFace { //</em>********* listando dados da Pousada************ private List cachedPousadas = null; private PousadaDAO pousadaDAO = new PousadaDAO(); private UfDAO ufDAO = new UfDAO(); private Pousada selectedPousada = new Pousada();
/** Creates a new instance of PousadaFace */ public PousadaFace() { }
public List getCachedPousadas() { if (cachedPousadas == null){ cachedPousadas = pousadaDAO.getPousadas(); } return cachedPousadas; }
public List getUfsCadastradas(){ List toReturn = new LinkedList(); for (Uf uf : ufDAO.getUfs()){ toReturn.add(new SelectItem(uf,uf.getDescricao())); } return toReturn; }
//********** Adicionar Pousadas ***************
public String addPousada(){
selectedPousada = new Pousada();
return "irParaAddNovaPousada";
}
public String removerPousada(){
pousadaDAO.removerPousada(selectedPousada);
cachedPousadas = null;
return "irParaListaPousadas";
}
public Pousada getSelectedPousada(){
return selectedPousada;
}
public String terminaAddPousada(){
pousadaDAO.addPousada(selectedPousada);
cachedPousadas = null;
return "irParaListaPousadas";
}
public PousadaDAO getPousadaDAO() {
return pousadaDAO;
}
public void setPousadaDAO(PousadaDAO pousadaDAO) {
this.pousadaDAO = pousadaDAO;
}
public void setSelectedPousada(Pousada selectedPousada) {
this.selectedPousada = selectedPousada;
}
}
pousadaDao
package projetoPousadas.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import projetoPousadas.entity.Pousada;
/**
*
-
@author Rafael */ public class PousadaDAO extends GenericDAO { private static final long serialVesionUID = 1L; private Session session;
private PousadaDAO(Session session){ this.session = session; }public PousadaDAO() { this.session = getSession(); }public int addPousada(Pousada pous){ Session ses = getSession(); ses.save(pous); ses.getTransaction().commit(); ses.close(); return pous.getCnpj_pousada(); }public void removerPousada(Pousada pous){ Session ses = getSession(); ses.delete(pous); ses.getTransaction().commit(); ses.close(); }public void alterarPousada(Pousada pous){ Session ses = getSession(); ses.update(pous); ses.getTransaction().commit(); ses.close(); }public boolean validarSenha (String login, String senha){ boolean valido; Session ses = getSession(); Query query = ses.createQuery(“from Pousada pous where pous.login = ?1 and pous.senha = ?2”); query.setString(1,login); query.setString(2,senha); Pousada pous = (Pousada) query.uniqueResult(); valido = (pous != null); ses.getTransaction().commit(); ses.close(); return valido; }
public boolean novoValidadordeloginesenha(String login, String senha){ return getPurePojo(“from Pousada pous where pous.login = ?1 and pous.senha = ?2”, login,senha) !=null; }
public List getPousadas(){ return getPureList(Pousada.class, “from Pousada pous”); } }
cadastrarpousada.jsp
<h2>Cadastro de pousadas</h2>
<h:form>
<table border="0">
<tr>
<td>CNPJ:</td>
<td><h:inputText size="14" value="#{PousadaFace.selectedPousada.cnpj_pousada}"/></td>
</tr>
<tr>
<td>Nome Razão social:</td>
<td><h:inputText size="50" value="#{PousadaFace.selectedPousada.nomeRazao}"/></td>
</tr>
<tr>
<td>Nome fantasia:</td>
<td><h:inputText size="50" value="#{PousadaFace.selectedPousada.nomeFantasia}"/></td>
</tr>
<tr>
<td>UF:</td>
<td><h:selectOneMenu value="#{UfFace.selectedUf.descricao}">
<f:selectItems value="#{PousadaFace.ufsCadastradas}"/>
</h:selectOneMenu>
</td>
</tr>
<tr>
<td>Logradouro:</td>
<td><h:inputText size="30" value="#{PousadaFace.selectedPousada.logradouro}"/></td>
</tr>
<tr>
<td>Numero:</td>
<td><h:inputText size="6" value="#{PousadaFace.selectedPousada.numero}"/></td>
<tr>
<td>CEP:</td>
<td><h:inputText size="10" value="#{PousadaFace.selectedPousada.cep}"/></td>
</tr>
<tr>
<td>Complemento:</td>
<td><h:inputText size="30" value="#{PousadaFace.selectedPousada.complemento}"/></td>
</tr>
<tr>
<td>Telefone:</td>
<td><h:inputText size="10" value="#{PousadaFace.selectedPousada.telefone}"/></td>
</tr>
<tr>
<td>Celular:</td>
<td><h:inputText size="10" value="#{PousadaFace.selectedPousada.celular}"/></td>
</tr>
<tr>
<td>site:</td>
<td><h:inputText size="30" value="#{PousadaFace.selectedPousada.site}"/></td>
</tr>
<tr>
<td>Email:</td>
<td><h:inputText size="30" value="#{PousadaFace.selectedPousada.email}"/></td>
</tr>
<tr>
<td>Login:</td><td><h:inputText size="15" value="#{PousadaFace.selectedPousada.login}"/></td>
</tr>
<tr>
<td>Senha:</td>
<td><h:inputSecret size="12" value="#{PousadaFace.selectedPousada.senha}"/></td>
</tr>
<tr>
<td><h:commandButton action="irParaListaPousadas" value="Cancelar"/></td>
<td><h:commandButton action="#{PousadaFace.terminaAddPousada}" value="Cadastrar" /></td>
</tr>
</table>
</h:form>
</div>
<!--------------FIM DO CUNTEUDO PRINCIPAL---------------------->
como posso salvar dados de tabelas diferente de uma vez só?
Desde de ja agradeço.