Eu preciso gravar o nome do usuário que está logado no sistema num cadastro de clientes.
Eu tenho em mãos a classe que possui o nome dele mas não sei como atribuir o nome automaticamente a um inputext do JSF.
No Delphi eu tenho a propriedade text onde eu faço CAMPO.Text := usuarioLogado;
Como eu faço isso em Java EE com JSF?
Obs.: O automatico que me refiro não é fazer o bind no campo.
Obrigado!
Popular um inputText JSF automaticamente
14 Respostas
`na classe controller :
private Pessoa pessoa;
//getters e setters
@PostConstruct
public void init( ) {
this.pessoa = usuarioLogado ( );
}
estou supondo que os campos do seu form apontam para o objeto pessoa na classe controller, p.ex:
< h:inputText value=#{controller.pessoa.nome} />
`
lucciano01 eu não entendi muito bem.
Eu tenho os ManagedBeans: UsuarioBean e ClienteBean.
Meus forms de login e cliente estão apontando respectivamente para os MBs.
Pessoa que você cita é o meu ClienteBean?
posta os managedbeans e a pagina completa com o form que vc quer preenchido com o usuario logado
@Model
public class LoginBean {
@Inject
private UsuarioLogadoBean usuarioLogado;
@Inject
private UsuarioDao dao;
private Usuario usuario = new Usuario();
public String efetuaLogin() {
boolean loginValido = dao.existe(this.usuario);
if (loginValido){
usuarioLogado.logar(usuario);
return "cliente?faces-redirect=true";
} else{
usuarioLogado.deslogar();
this.usuario = new Usuario();
return "login";
}
}
public Usuario getUsuario() {
return this.usuario;
}
public String logout() {
usuarioLogado.deslogar();
this.usuario = new Usuario();
return "login";
}
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@Model
@Transactional
@ViewScoped
public class ClienteBean implements Serializable {
private static final long serialVersionUID = 1L;
private Cliente cliente = new Cliente();
private Long idOperadora;
private List<Cliente> clientes;
@Inject
private ClienteDao dao;
public String grava() {
if (cliente.getId() == null){
dao.adiciona(cliente);
} else {
dao.atualiza(cliente);
}
clientes = dao.listaTodos();
return "cliente?faces-redirect=true";
}
public void remove(Cliente cliente) {
dao.remove(cliente);
this.clientes = dao.listaTodos();
}
public void cancela() {
this.cliente = new Cliente();
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public void setClientes(List<Cliente> clientes) {
this.clientes = clientes;
}
public Cliente getCliente(){
return this.cliente;
}
public Long getIdOperadora() {
return idOperadora;
}
public void setIdOperadora(Long idOperadora) {
this.idOperadora = idOperadora;
}
public List<Cliente> getClientes(){
if (clientes == null){
clientes = dao.listaTodos();
}
return clientes;
}
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
<ui:composition template="/_template.xhtml">
<ui:define name="corpo">
<h:form id="cadastro">
<!--
<h:messages id="mensagens" style="color:red;font:bold;margin:8px;" />
<h:messages style="color:red;margin:8px;" />
-->
<p:messages id="messages" showDetail="false" showSummary="true" autoUpdate="true" closable="true" />
<h2>
<h:outputText value="Novo Cliente" rendered="#{empty clienteBean.cliente.id}" />
<h:outputText value="Editar Cliente" rendered="#{not empty clienteBean.cliente.id}" />
</h2>
<fieldset>
<legend>Dados do Cliente</legend>
<h:inputHidden value="#{clienteBean.cliente.id}" />
<h:outputLabel value="Nome:" for="nome" />
<h:inputText id="nome" value="#{clienteBean.cliente.nome}" size="70" maxlength="80" tabindex="0"
required="true" requiredMessage="O campo Nome é obrigatório">
<f:validateLength minimum="5" maximum="80"/>
</h:inputText>
<h:outputLabel value="Telefone Fixo:" for="telefone_fixo" />
<p:inputMask id="telefone_fixo" value="#{clienteBean.cliente.telefone_fixo}" mask="([telefone removido]" tabindex="1"/>
<h:outputLabel value="Celular:" for="telefone_celular" />
<p:inputMask id="telefone_celular" value="#{clienteBean.cliente.telefone_celular}"
mask="([telefone removido]" tabindex="2"/>
<h:outputLabel value="Operadora:" for="operadora" />
<h:selectOneMenu id="operadora" value="#{clienteBean.cliente.operadora}" tabindex="3">
<f:selectItem itemLabel="Selecione" noSelectionOption="true"/>
<f:selectItems value="#{operadoraBean.operadoras}" var="operadora"
itemLabel="#{operadora.descricao}" itemValue="#{operadora.id}" />
</h:selectOneMenu>
<fieldset id="planos">
<legend>Planos:</legend>
<div id="plano">
<h:outputLabel value="Musculação" for="musculacao" />
<h:selectBooleanCheckbox id="musculacao" value="#{clienteBean.cliente.musculacao}" tabindex="4"/>
<h:outputLabel value="MuayTai" for="muaytai" />
<h:selectBooleanCheckbox id="muaytai" value="#{clienteBean.cliente.muaytai}" tabindex="5"/>
<h:outputLabel value="Jiu Jitsu" for="jiujitsu" />
<h:selectBooleanCheckbox id="jiujitsu" value="#{clienteBean.cliente.jiujitsu}" tabindex="6"/>
</div>
</fieldset>
<h:outputLabel value="Valor:" for="valor" />
<h:inputText id="valor" value="#{clienteBean.cliente.valor}" required="true" tabindex="7"
requiredMessage="O campo valor é obrigatório" validatorMessage="O valor mínimo permitido são R$10,00">
<f:validateDoubleRange minimum="10.00" />
<f:convertNumber pattern="###,###.##" minFractionDigits="2"/>
</h:inputText>
<h:outputLabel value="Vencto.:" for="vencimento" />
<h:selectOneMenu id="vencimento" value="#{clienteBean.cliente.vencimento}" tabindex="8"
required="true" requiredMessage="Informe o vencimento!" >
<f:selectItem itemValue="01" itemLabel="01"/> <f:selectItem itemValue="02" itemLabel="02"/>
<f:selectItem itemValue="03" itemLabel="03"/> <f:selectItem itemValue="04" itemLabel="04"/>
<f:selectItem itemValue="05" itemLabel="05"/> <f:selectItem itemValue="06" itemLabel="06"/>
<f:selectItem itemValue="07" itemLabel="07"/> <f:selectItem itemValue="08" itemLabel="08"/>
<f:selectItem itemValue="09" itemLabel="09"/> <f:selectItem itemValue="10" itemLabel="10"/>
<f:selectItem itemValue="11" itemLabel="11"/> <f:selectItem itemValue="12" itemLabel="12"/>
<f:selectItem itemValue="13" itemLabel="13"/> <f:selectItem itemValue="14" itemLabel="14"/>
<f:selectItem itemValue="15" itemLabel="15"/> <f:selectItem itemValue="16" itemLabel="16"/>
<f:selectItem itemValue="17" itemLabel="17"/> <f:selectItem itemValue="18" itemLabel="18"/>
<f:selectItem itemValue="19" itemLabel="19"/> <f:selectItem itemValue="20" itemLabel="20"/>
<f:selectItem itemValue="21" itemLabel="21"/> <f:selectItem itemValue="22" itemLabel="22"/>
<f:selectItem itemValue="23" itemLabel="23"/> <f:selectItem itemValue="24" itemLabel="24"/>
<f:selectItem itemValue="25" itemLabel="25"/> <f:selectItem itemValue="26" itemLabel="26"/>
<f:selectItem itemValue="27" itemLabel="27"/> <f:selectItem itemValue="28" itemLabel="28"/>
<f:selectItem itemValue="29" itemLabel="29"/> <f:selectItem itemValue="30" itemLabel="30"/>
<f:selectItem itemValue="31" itemLabel="31"/>
</h:selectOneMenu>
<h:outputLabel value="Observações:" for="observacoes" />
<h:inputTextarea id="observacoes" value="#{clienteBean.cliente.observacoes}" maxlength="255" tabindex="9"/>
<h:outputLabel value="Situação:" for="situacao" />
<h:selectOneMenu id="situacao" value="#{clienteBean.cliente.situacao}" tabindex="10">
<f:selectItem itemValue="ATIVO" itemLabel="ATIVO" />
<f:selectItem itemValue="INATIVO" itemLabel="INATIVO" />
</h:selectOneMenu>
<c:choose>
<c:when test="#{empty clienteBean.cliente.id}" >
Gravação
</c:when>
<c:otherwise>
Alteração
</c:otherwise>
</c:choose>
<h:panelGrid id="infoData" columns="4" columnClasses="cellGridFormLabel">
<h:outputLabel value="Data Cadastro:" for="dat_cadastro" />
<h:inputText id="dat_cadastro" value="#{clienteBean.cliente.data_cadastro.time}" pattern="dd/MM/yyyy HH:mm"
style="background-color:#D3D3D3;" readonly="true">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
</h:inputText>
<h:outputLabel value="Data Alteração:" for="dat_altera" />
<h:inputText id="dat_altera" value="#{clienteBean.cliente.data_altera.time}"
style="background-color:#D3D3D3;" readonly="true">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
</h:inputText>
</h:panelGrid>
<h:panelGrid id="infoUser" columns="4" columnClasses="cellGridFormLabel">
<h:outputLabel value="Usuário Cadastro:" for="usr_cadastro" />
<h:inputText id="usr_cadastro" value="#{clienteBean.cliente.usr_cadastro}"
style="background-color:#D3D3D3;" readonly="true">
<!-- rendered="loginBean.usuario.login" -->
</h:inputText>
<h:outputLabel value="Usuário Alteração:" for="usr_altera" />
<h:inputText id="usr_altera" value="#{clienteBean.cliente.usr_altera}"
style="background-color:#D3D3D3;" readonly="true" />
</h:panelGrid>
<div class="botoes-item">
<div class="botoes"><h:commandButton value="Gravar" action="#{clienteBean.grava}" /></div>
<div class="botoes"><h:commandButton value="Cancelar" action="#{clienteBean.cancela}" imediate="true"/></div>
</div>
</fieldset>
</h:form>
<h2>Listagem de Clientes</h2>
<h:form id="listaCliente">
<p:dataTable value="#{clienteBean.clientes}" var="cliente" styleClass="dados" rowClasses="impar,par"
paginator="true" rows="15">
<p:column headerText="Nome" style="width:350px">
#{cliente.nome}
</p:column>
<!--
style="max-width: 450px; min-width: 450px; overflow: hidden"
-->
<p:column headerText="Vencto." style="width:40px;text-align:right;">
#{cliente.vencimento}
</p:column>
<p:column headerText="Valor" style="width:75px;text-align:right;">
<h:outputText value="#{cliente.valor}">
<f:convertNumber type="currency" currencySimbol="R$ " locale="pt_BR" />
</h:outputText>
</p:column>
<p:column headerText="Celular" style="width:100px">
#{cliente.telefone_celular}
</p:column>
<p:column headerText="Operadora" style="width:70px">
#{cliente.operadora}
</p:column>
<p:column headerText="Telefone Fixo" style="width:90px">
#{cliente.telefone_fixo}
</p:column>
<p:column headerText="Situação" style="width:50px">
#{cliente.situacao}
</p:column>
<p:column headerText="Ações" style="text-align:center">
<h:commandLink action="#{clienteBean.remove(cliente)}" value="Excluir" style="color:blue"
onclick="if(!confirm('Confirma a exclusão deste Cliente?')) return false;">
</h:commandLink>
<h:commandLink value="Alterar" style="color:blue">
<f:setPropertyActionListener value="#{cliente}" target="#{clienteBean.cliente}" />
</h:commandLink>
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
É no trecho abaixo que preciso colocar o nome que será gravado:
<h:panelGrid id=“infoUser” columns=“4” columnClasses=“cellGridFormLabel”>
<h:outputLabel value=“Usuário Cadastro:” for=“usr_cadastro” />
<h:inputText id=“usr_cadastro” value="#{clienteBean.cliente.usr_cadastro}"
style=“background-color:#D3D3D3;” readonly=“true”>
</h:inputText>
</h:panelGrid>
`usuarioLogado.logar(usuario);
esse método deve colocar o usuário na sessão, dessa forma vc podera pegar o usuarioLogado em qualquer managedbean, se foi validado o login vc faz isso:
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(“usuarioLogado”, usuario);
e pra recuperar vc faz isso
usuario = (Usuario)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(“usuarioLogado”);
`
Ok, lucciano01, ainda ficou uma dúvida, como eu atribuo este nome ao campo abaixo:
h:inputText id=“usr_cadastro” value="#{clienteBean.cliente.usr_cadastro}"
É neste campo que eu gravo o nome do Usuario, como estou usando JPA eu não manipulo o Insert, então,
acredito que para gravar o nome do Usuário tenho que colocar o seu nome dentro deste campo.
A não ser que tenha outro modo!
`Ok Adauto, quando o objeto pessoa recebe o usuario da sessão (usuarioLogado) isso siginifica que enquanto a sessão estiver aberta os valores do objeto pessoa serão setados para os valores do usuarioLogado, então se os campos do seu form estiverem recebendo os valores de pessoa eles serão automaticamento preenchidos por ex.:
h:inputText id=“usr_cadastro” value="#{clienteBean.pessoa.nome}"
nessa situação acima o input será preenchido com o nome do usuarioLogado (usuario da sessao)
no momento do carregamento do form
`
`
private Usuario usuario = new Usuario();
public String efetuaLogin() {
boolean loginValido = dao.existe(this.usuario);
if (loginValido){
usuarioLogado.logar(usuario);
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(“usuarioLogado”, usuario);
return “cliente?faces-redirect=true”;
} else{
usuarioLogado.deslogar();
this.usuario = new Usuario();
return “login”;
}
}
public Usuario getUsuario() {
return this.usuario;
}
public String logout() {
usuarioLogado.deslogar();
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().removet(“usuarioLogado”);
this.usuario = new Usuario();
return “login”;
}
}
’
@Model
@Transactional
@ViewScoped
public class ClienteBean implements Serializable {
private static final long serialVersionUID = 1L;
private Cliente cliente = new Cliente();
private Long idOperadora;
private List clientes;
@Inject
private ClienteDao dao;
public String grava() {
if (cliente.getId() == null){
dao.adiciona(cliente);
} else {
dao.atualiza(cliente);
}
clientes = dao.listaTodos();
return “cliente?faces-redirect=true”;
}
public void remove(Cliente cliente) {
dao.remove(cliente);
this.clientes = dao.listaTodos();
}
public void cancela() {
this.cliente = new Cliente();
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public void setClientes(List clientes) {
this.clientes = clientes;
}
public Cliente getCliente(){
cliente = (Cliente)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(“usuarioLogado”);
return this.cliente;
}
public Long getIdOperadora() {
return idOperadora;
}
public void setIdOperadora(Long idOperadora) {
this.idOperadora = idOperadora;
}
public List getClientes(){
if (clientes == null){
clientes = dao.listaTodos();
}
return clientes;
}
Oi lucciano01!
Estou tentando usar a solução que você explicou, mas estou tento o seguinte erro:
Ao que me parece o cast dentro do getCliente() não é aceito.
Você sabe uma maneira de contornar isso?
Obrigado!
2016-03-26T18:37:35.896-0300|Advertência: PersistenceUnitInfo pulliron has transactionType RESOURCE_LOCAL and therefore jtaDataSource will be ignored
2016-03-26T18:37:35.898-0300|Informações: EclipseLink, version: Eclipse Persistence Services - 2.6.3.v20160218-180e602
2016-03-26T18:37:36.099-0300|Informações: /file:/C:/Users/Adauto/glassfish-5.0/glassfish4/glassfish/domains/domain1/eclipseApps/PullIron/WEB-INF/classes/<em>pulliron login successful
2016-03-26T18:37:36.286-0300|Detalhado: SELECT ID, LOGIN, SENHA FROM USUARIO WHERE ((LOGIN = ?) AND (SENHA = ?))
bind => [adauto, adauto]
2016-03-26T18:37:36.405-0300|Advertência: StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
java.lang.ClassCastException: br.com.pulliron.modelo.Usuario cannot be cast to br.com.pulliron.modelo.Cliente
at br.com.pulliron.mb.ClienteBean.getCliente(ClienteBean.java:56)
at br.com.pulliron.mb.ClienteBean$Proxy$</em>$$<em>WeldSubclass.getCliente$$super(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.jboss.weld.interceptor.proxy.TerminalAroundInvokeInvocationContext.proceedInternal(TerminalAroundInvokeInvocationContext.java:49)
at org.jboss.weld.interceptor.proxy.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:77)
at br.com.pulliron.tx.TransactionInterceptor.intercept(TransactionInterceptor.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74)
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeAroundInvoke(InterceptorMethodHandler.java:84)
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:72)
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:56)
at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:79)
at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:68)
at br.com.pulliron.mb.ClienteBean$Proxy$</em>$$_WeldSubclass.getCliente(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.parser.AstEmpty.getValue(AstEmpty.java:66)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at com.sun.faces.facelets.tag.TagAttributeImpl.getObject(TagAttributeImpl.java:356)
at com.sun.faces.facelets.tag.TagAttributeImpl.getBoolean(TagAttributeImpl.java:150)
at com.sun.faces.facelets.tag.jstl.core.ChooseWhenHandler.isTestTrue(ChooseWhenHandler.java:87)
at com.sun.faces.facelets.tag.jstl.core.ChooseHandler.apply(ChooseHandler.java:104)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:202)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at com.sun.faces.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:106)
at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:206)
at com.sun.faces.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:395)
at com.sun.faces.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:366)
at com.sun.faces.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:111)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:202)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:312)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:371)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:350)
at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:174)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:1006)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:745)
`vc deve utilizar herança nas entidades p. ex.:
public class Cliente extends Usuario
`
Oi lucciano01!
Cara, eu fui colocar extends na classe Usuario e na hora de rodar a aplicação deu vários erros.
Será que se eu mudasse a abordagem ficaria mais fácil?
Como eu passaria o nome do Usuario que está cadastrando o Cliente para o JPA/Hibernate.
O meu insert é feito a partir desta linha de código: manager.persist(cliente); no meu Cliente DAO
Eu não preciso criar nenhuma sintaxe de insert.
Você sabe como eu passaria um parametro para o insert (uma String no caso) para juntar no insert
do JPA/Hibernate?
Bom dia pessoal!
Alguém sabe como passar o nome do Usuario que está cadastrando o Cliente para o JPA/Hibernate.
O meu insert é feito a partir desta linha de código: manager.persist(cliente); no meu Cliente DAO
Eu não preciso criar nenhuma sintaxe de insert.
Como eu passaria um parametro para o insert (uma String no caso) para juntar no insert
do JPA/Hibernate?