Fórum Pegar o valor de um campo de outra tabela #521213
28/05/2015
0
Olá pessoal!
Como faço para declarar que o valor de um campo de uma tabela é igual ao valor de um campo de outra tabela? Por exemplo, tenho duas tabelas: Cliente e Endereço. O relacionamento entre as tabelas é feito pelo campo codcliente. Só que no momento de cadastrar um endereço o campo codcli da tabela Endereço está vazio. Por isso, preciso definir que o código do cliente no cadastro do endereço é igual ao código do cliente já cadastrado. Sou iniciante em Java e não estou sabendo fazer isso. Será que alguém poderia me ajudar?
Segue o código da classe Endereço e a página de cadastro:
Endereco
EnderecoBean
Cadastro de Endereço
Obrigada.
Como faço para declarar que o valor de um campo de uma tabela é igual ao valor de um campo de outra tabela? Por exemplo, tenho duas tabelas: Cliente e Endereço. O relacionamento entre as tabelas é feito pelo campo codcliente. Só que no momento de cadastrar um endereço o campo codcli da tabela Endereço está vazio. Por isso, preciso definir que o código do cliente no cadastro do endereço é igual ao código do cliente já cadastrado. Sou iniciante em Java e não estou sabendo fazer isso. Será que alguém poderia me ajudar?
Segue o código da classe Endereço e a página de cadastro:
Endereco
@Entity
public class Endereco implements Serializable {
private static final long serialVersionUID = 1L;
private Integer codendereco;
private String logradouro;
private String numero;
private String complemento;
private String bairro;
private String cidade;
private String cep;
private TipoEndereco tipoendereco;
private UFEndereco uf;
private Cliente cliente;
@Id
@GeneratedValue
public Integer getCodendereco() {
return codendereco;
}
public void setCodendereco(Integer codendereco) {
this.codendereco = codendereco;
}
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
@Enumerated(EnumType.STRING)
public TipoEndereco getTipoendereco() {
return tipoendereco;
}
public void setTipoendereco(TipoEndereco tipoendereco) {
this.tipoendereco = tipoendereco;
}
@Enumerated(EnumType.STRING)
public UFEndereco getUf() {
return uf;
}
public void setUf(UFEndereco uf) {
this.uf = uf;
}
@ManyToOne
@JoinColumn(name = "codcliente")
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
@Override
public int hashCode() {
int hash = 3;
hash = 59 * hash + Objects.hashCode(this.codendereco);
hash = 59 * hash + Objects.hashCode(this.logradouro);
hash = 59 * hash + Objects.hashCode(this.numero);
hash = 59 * hash + Objects.hashCode(this.complemento);
hash = 59 * hash + Objects.hashCode(this.bairro);
hash = 59 * hash + Objects.hashCode(this.cidade);
hash = 59 * hash + Objects.hashCode(this.cep);
hash = 59 * hash + Objects.hashCode(this.tipoendereco);
hash = 59 * hash + Objects.hashCode(this.uf);
hash = 59 * hash + Objects.hashCode(this.cliente);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Endereco other = (Endereco) obj;
if (!Objects.equals(this.codendereco, other.codendereco)) {
return false;
}
if (!Objects.equals(this.logradouro, other.logradouro)) {
return false;
}
if (!Objects.equals(this.numero, other.numero)) {
return false;
}
if (!Objects.equals(this.complemento, other.complemento)) {
return false;
}
if (!Objects.equals(this.bairro, other.bairro)) {
return false;
}
if (!Objects.equals(this.cidade, other.cidade)) {
return false;
}
if (!Objects.equals(this.cep, other.cep)) {
return false;
}
if (this.tipoendereco != other.tipoendereco) {
return false;
}
if (this.uf != other.uf) {
return false;
}
if (!Objects.equals(this.cliente, other.cliente)) {
return false;
}
return true;
}
}
EnderecoBean
@ManagedBean(name="enderecoBean")
@RequestScoped
public class EnderecoBean {
private Endereco endereco = new Endereco();
private List<Endereco> lista;
private List<TipoEndereco> tiposEndereco;
private List<UFEndereco> ufs;
private List<Cliente> listaClientes;
public String novo() {
this.endereco = new Endereco();
return "/restrito/cadastrarendereco";
}
public String editar() {
return "/restrito/cadastrarendereco";
}
public void salvar() {
FacesContext facesContext = FacesContext.getCurrentInstance();
EnderecoRN enderecoRN = new EnderecoRN();
enderecoRN.salvar(this.endereco);
FacesMessage facesMessage = new FacesMessage("Endereço cadastrado com sucesso!");
facesContext.addMessage(null, facesMessage);
}
public String excluir() throws RNException {
EnderecoRN enderecoRN = new EnderecoRN();
enderecoRN.excluir(this.endereco);
this.lista = null;
return null;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public List<Endereco> getLista() {
if (this.lista == null) {
EnderecoRN enderecoRN = new EnderecoRN();
this.lista = enderecoRN.listar();
}
return lista;
}
public List<TipoEndereco> getTiposEndereco() {
return tiposEndereco = Arrays.asList(TipoEndereco.values());
}
public List<UFEndereco> getUfs() {
return ufs = Arrays.asList(UFEndereco.values());
}
public List<Cliente> getListaClientes() {
return listaClientes;
}
}
Cadastro de Endereço
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Cadastro de Endereço</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<h:outputStylesheet library="css" name="sistema.css" />
</h:head>
<h:body>
<header>
<div style="float: right; margin-right: 110px">
<h:form style="display: inline-block">
<p:menubar styleClass="menu-sistema">
<p:submenu label="Cadastros">
<p:menuitem value="Clientes" url="/restrito/cadastrarcliente.jsf"/>
<p:menuitem value="Seguros" url="/restrito/cadastrarseguro.jsf"/>
</p:submenu>
<p:submenu label="Consultas">
<p:menuitem value="Clientes" url="/restrito/consultarclientes.jsf"/>
<p:menuitem value="Seguros" url="/restrito/consultarseguros.jsf"/>
</p:submenu>
<p:submenu label="Relatórios">
<p:menuitem value="Clientes" url="/restrito/relclientes.jsf"/>
<p:menuitem value="Seguros" url="/restrito/relseguros.jsf"/>
</p:submenu>
<p:menuitem value="Sair" icon="ui-icon-close" onclick="document.location='#{request.contextPath}/j_spring_security_logout'" />
</p:menubar>
</h:form>
</div>
<div style="clear: both"></div>
</header>
<h:form id="frmCadastro" acceptcharset="ISO-8859-1">
<h1>Novo endereço</h1>
<p:messages id="messages" autoUpdate="true" closable="true" />
<p:toolbar style="margin-top: 20px">
<p:toolbarGroup>
<p:button value="Novo" outcome="/restrito/cadastrarendereco" icon="ui-icon-plusthick"/>
<p:commandButton action="#{enderecoBean.salvar()}" value="Salvar" ajax="false" update="@frmCadastro" icon="ui-icon-disk"/>
</p:toolbarGroup>
<p:toolbarGroup align="right">
<p:button value="Pesquisar" outcome="/restrito/consultarclientes" icon="ui-icon-arrowreturnthick-1-w"/>
</p:toolbarGroup>
</p:toolbar>
<br/><br/>
<p:panel header="Dados do Endereço" style="margin-top: 20px">
<h:inputHidden id="codigo" value="#{enderecoBean.endereco.codendereco}" />
<h:panelGrid columns="4" style="width: 100%" columnClasses="rotulo, campo" cellpadding="3" cellspacing="3">
<h:outputText value="Cliente:" />
<p:inputText id="cliente" value="#{clienteBean.cliente.nome}" required="true" size="50" readonly="true"/>
<h:outputText value="Código:" />
<p:inputText id="codcliente" value="#{clienteBean.cliente.codigo}" required="true" size="10" readonly="true"/>
<h:outputText value="Tipo de Endereço:" />
<p:selectOneMenu id="tipoEndereco" value="#{enderecoBean.endereco.tipoendereco}" label="Tipo de Endereço" required="true" requiredMessage="Tipo de Endereço deve ser informado." immediate="true">
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{enderecoBean.tiposEndereco}" var="tipoEndereco" itemLabel="#{tipoEndereco.descricao}" itemValue="#"/>
</p:selectOneMenu>
<h:outputText value="Logradouro:" />
<p:inputText id="log" value="#{enderecoBean.endereco.logradouro}" required="true" label="Logradouro" size="60" requiredMessage="Logradouro deve ser informado." immediate="true"/>
<h:outputText value="Número:" />
<p:inputMask mask="9?999999999" value="#{enderecoBean.endereco.numero}" required="true" label="Nº" size="10" maxlength="10" requiredMessage="Número deve ser informado." immediate="true"/>
<h:outputText value="Complemento:" />
<p:inputText value="#{enderecoBean.endereco.complemento}" size="50" maxlength="20" />
<h:outputText value="Bairro:" />
<p:inputText value="#{enderecoBean.endereco.bairro}" label="Bairro" required="true" size="50" maxlength="50" requiredMessage="Bairro deve ser informado." immediate="true"/>
<h:outputText value="Cidade:" />
<p:inputText value="#{enderecoBean.endereco.cidade}" label="Cidade" required="true" size="50" maxlength="50" requiredMessage="Cidade deve ser informada." immediate="true"/>
<h:outputText value="UF:" />
<p:selectOneMenu id="uf" value="#{enderecoBean.endereco.uf}" required="true" requiredMessage="UF deve ser informado." immediate="true">
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{enderecoBean.ufs}" var="uf" itemLabel="#{uf.descricao}" itemValue="#"/>
</p:selectOneMenu>
<h:outputText value="CEP:" />
<p:inputMask id="cep" mask="99999-999" value="#{enderecoBean.endereco.cep}" required="true" size="10" maxlength="10" requiredMessage="CEP deve ser informado." immediate="true"/>
</h:panelGrid>
</p:panel>
</h:form>
</h:body>
</html>
Obrigada.
Sgrandini
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)