Boa noite galera, sou novo nisso e estou montando uma aplicação usando JSF + JPA +PrimeFaces
só que estou com um problema, se não há nenhum dado no banco, a aplicação funciona.
Se eu adiciono algum dado ele da erro e não carrega.
Alguem poderia me dar uma luz? hehe
O que da a entender é que ele pede uma “String” no meu campos registro não é?
Só que meu campo registro é um tipo “long”
segue o erro e no final o erro completo
java.lang.NumberFormatException: For input string: "registro"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
Classe Livro
package Model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.hibernate.envers.Audited;
@Entity
//@Audited
public class Livro implements Serializable {
@Id
@GeneratedValue
//@GeneratedValue(strategy = GenerationType.IDENTITY)
private long registro;
private float processo;
private int ra;
private String nomeAluno;
private String situacao;
private String situacaoAntiga;
public Livro(long registro,float processo,int ra,String nomeAluno,String situacao,String situacaoAntiga) {
}
public Livro() {
this.registro = registro;
this.processo = processo;
this.ra = ra;
this.nomeAluno = nomeAluno;
this.situacao = situacao;
this.situacaoAntiga = situacaoAntiga;
}
public String getNomeAluno() {
return nomeAluno;
}
public void setNomeAluno(String nomeAluno) {
this.nomeAluno = nomeAluno;
}
public float getProcesso() {
return processo;
}
public void setProcesso(float processo) {
this.processo = processo;
}
public int getRa() {
return ra;
}
public void setRa(int ra) {
this.ra = ra;
}
public long getRegistro() {
return registro;
}
public void setRegistro(long registro) {
this.registro = registro;
}
public String getSituacao() {
return situacao;
}
public void setSituacao(String situacao) {
this.situacao = situacao;
}
public String getSituacaoAntiga() {
return situacaoAntiga;
}
public void setSituacaoAntiga(String situacaoAntiga) {
this.situacaoAntiga = situacaoAntiga;
}
}
Classe Dao
package Dao;
import Model.Livro;
import java.util.List;
public interface LivroDao {
public void save(Livro livro);
public Livro getLivro(long registro);
public List<Livro> list();
public void remove(Livro livro);
public void update(Livro livro);
}
Classe LivroDaoImp
package Dao;
import Model.Livro;
import Utils.HibernateUtil;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import javax.persistence.EntityManager;
import javax.persistence.Query;
public class LivroDaoImp extends HibernateUtil implements LivroDao {
public void save(Livro livro) {
EntityManager em = getEntityManager();
em.getTransaction();
em.persist(livro);
em.getTransaction().begin();
em.getTransaction().commit();
em.close();
}
public Livro getLivro(long registro) {
EntityManager em = getEntityManager();
return em.find(Livro.class, registro);
}
public List<Livro> list() {
EntityManager em = getEntityManager();
try {
Query q = em.createNativeQuery("select *from livro");
//Query q = em.createQuery("select livro0_.registro as registro0_, livro0_.nomeAluno as nomeAluno0_, livro0_.processo as processo0_, livro0_.ra as ra0_, livro0_.situacao as situacao0_, livro0_.situacaoAntiga as situacao6_0_ from Livro livro0_");
return q.getResultList();
} finally {
em.close();
}
}
public void remove(Livro livro) {
EntityManager em = getEntityManager();
em.getTransaction();
em.remove(em.getReference(Livro.class, livro.getRegistro()));
em.getTransaction().begin();
em.getTransaction().commit();
em.close();
}
public void update(Livro livro) {
EntityManager em = getEntityManager();
em.getTransaction();
em.merge(livro);
em.getTransaction().begin();
em.getTransaction().commit();
em.close();
}
}
HibernaUtil
package Utils;
import Model.Livro;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
public class HibernateUtil {
private EntityManagerFactory emf;
public EntityManager getEntityManager(){
return emf.createEntityManager();
}
public HibernateUtil(){
emf = Persistence.createEntityManagerFactory("academico");
}
}
index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>Sistema Academico</title>
<link type="text/css" rel="stylesheet" href="dot-luv/skin.css"/>
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="left" width="200" header="Atividades" resizable="true" closable="true" collapsible="true">
<h:form prependId="false">
<p:commandLink value="Novo Registro" actionListener="#{livroController.prepararAdicionarLivro}" update="infosLivro" oncomplete="dialogGerLivro.show()"/>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center">
<h1>Sistema Academico</h1>
<br/>
<h:form prependId="false">
<p:dataTable id="tabela" var="livro" value="#{livroController.listarLivros}">
<p:column>
<f:facet name="header">
<h:outputText value="Registro"/>
</f:facet>
<h:outputText value="#{livro.registro}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Processo"/>
</f:facet>
<h:outputText value="#{livro.processo}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="RA"/>
</f:facet>
<h:outputText value="#{livro.ra}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Nome do Aluno"/>
</f:facet>
<h:outputText value="#{livro.nomeAluno}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Situacao"/>
</f:facet>
<h:outputText value="#{livro.situacao}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Alterar"/>
</f:facet>
<p:commandButton actionListener="#{livroController.prepararAlterarLivro}" value="Alterar" update="infosLivro" oncomplete="dialogGerLivro.show()"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<h:commandLink action="#{livroController.excluirLivro}" value="Excluir"/>
</p:column>
</p:dataTable>
</h:form>
</p:layoutUnit>
</p:layout>
<p:dialog header="Sistema Academico" widgetVar="dialogGerLivro" resizable="false" modal="true" showEffect="slide" width="500">
<h:form prependId="false">
<h:panelGrid id="infosLivro" columns="2" style="margin-bottom:10px">
<h:outputLabel for="registro" value="Registro" />
<h:inputText id="registro" value="#{livroController.livro.registro}"/>
<h:outputLabel for="autor" value="Processo" />
<h:inputText id="autor" value="#{livroController.livro.processo}"/>
<h:outputLabel for="paginas" value="ra" />
<h:inputText id="paginas" value="#{livroController.livro.ra}"/>
<h:outputLabel for="editora" value="nomeAluno" />
<h:inputText id="editora" value="#{livroController.livro.nomeAluno}"/>
<h:outputLabel for="situacao" value="Situacao" />
<h:selectOneMenu id="situacao" value="#{livroController.livro.situacao}">
<f:selectItem itemLabel="concluido" itemValue="concluido"/>
<f:selectItem itemLabel="pendente" itemValue="pendente"/>
<f:selectItem itemLabel="3" itemValue="3"/>
<f:selectItem itemLabel="4" itemValue="4"/>
<f:selectItem itemLabel="5" itemValue="5"/>
</h:selectOneMenu>
<p:commandButton update="tabela" oncomplete="dialogGerLivro.hide();" actionListener="#{livroController.adicionarLivro}" value="Inserir registro"/>
<p:commandButton update="tabela" oncomplete="dialogGerLivro.hide();" actionListener="#{livroController.alterarLivro}" value="Alterar registro"/>
</h:panelGrid>
</h:form>
</p:dialog>
</h:body>
</html>
erro
java.lang.NumberFormatException: For input string: "registro"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at javax.el.ArrayELResolver.coerce(ArrayELResolver.java:166)
at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:46)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UIOutput.getValue(UIOutput.java:168)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:338)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularCell(DataTableRenderer.java:571)
at org.primefaces.component.datatable.DataTableRenderer.encodeRow(DataTableRenderer.java:531)
at org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:472)
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:201)
at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:180)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:85)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)