Bom dia pessoal. Estou tentando salvar umas informações aqui, mas não sei o que está acontecendo. O código para salvar é esse:
[code]public void importarDadosChuvas(){
ChuvasDiarias chuvasDiarias = new ChuvasDiarias();
ChuvaNegocio chuvaNegocio = new ChuvaNegocio();
listachuvas = (List<Chuva>) chuvaNegocio.recuperaChuva(dataDaChuva);
for(Chuva chuva : listachuvas){
chuvasDiarias.setMaxima(chuva.getMaxima());
chuvasDiarias.setDataChuva(chuva.getDataChuva());
em.persist(chuvasDiarias);
}
}[/code]
E recebo o seguinte erro:
11:15:58,718 SEVERE [application] java.lang.IllegalArgumentException: Unknown entity: br.com.ana.tr.entidades.ChuvasDiarias
javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: Unknown entity: br.com.ana.tr.entidades.ChuvasDiarias
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
mostra o mapeamento dessa classe
[code]@Entity
@Table(name=“chuvas_diarias”)
public class ChuvasDiarias implements Serializable{
private static final long serialVersionUID = 4676820501431156782L;
private Double maxima;
private Date dataChuva;
@Column(name="nu_maxima")
public Double getMaxima() {
return maxima;
}
public void setMaxima(Double maxima) {
this.maxima = maxima;
}
@Column(name="nu_data")
public Date getDataChuva() {
return dataChuva;
}
public void setDataChuva(Date dataChuva) {
this.dataChuva = dataChuva;
}
}[/code]
dica: não coloque os “name” separados por espaços.
você verificou se sua entidade está declarada no persistence.xml?
A entidade está mapeada corretamente no persistence.xml? Tenta verificar se o caminho completo está correto.
Poderiam me dar uma exemplo desse mapeamento. Pois certa vez desenvolvi uma aplicação inteira sem precisar mapear. Deixei dessa forma:
[code]<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.ejb.HibernatePersistence
java:/TRProjectDatasource
[/code]
faltou colocar
br.com.ana.tr.entidades.ChuvasDiarias
Não esta faltando uma chave primária nessa entidade ai?
@Id
private Long id;
Não estou precisando ainda de chave primária e ela não é obrigatória. Depende do que estiver querendo fazer…
Coloquei o
Mas surgiu outro erro:
[code]Caused by: java.lang.ClassNotFoundException: br.com.ana.tr.entidades.ChuvasDiarias from BaseClassLoader@770fba26{VFSClassLoaderPolicy@298651db{name=vfsfile:/C:/Java/servidores/jboss-5.1.0.GA/server/default/conf/jboss-service.xml
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:135)
at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1009)
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1081)
… 59 more
12:01:49,179 INFO [TomcatDeployment] deploy, ctxPath=/TRProject
12:01:49,295 INFO [config] Initializing Mojarra (1.2_12-b01-FCS) for context '/TRProject’
12:01:50,358 INFO [ServletContextListener] Welcome to Seam 2.2.1.Final
12:01:52,546 WARN [Component] Component class should be serializable: chuvaAction
12:01:52,713 WARN [PersistentPermissionResolver] no permission store available - please install a PermissionStore with the name ‘org.jboss.seam.security.jpaPermissionStore’ if persistent permissions are required.
12:01:52,812 WARN [HDScanner] Failed to process changes
org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
DEPLOYMENTS IN ERROR:
Deployment “persistence.unit:unitName=#TRProject” is in error due to the following reason(s): java.lang.ClassNotFoundException: br.com.ana.tr.entidades.ChuvasDiarias
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:369)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[/code]
Está certo esse mapeamento?
[code]<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.ejb.HibernatePersistence
java:/TRProjectDatasource
<class>br.com.ana.tr.entidades.ChuvasDiarias</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="true"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/TRProjectEntityManagerFactory"/>
</properties>
[/code]
Não está faltando estas anotações?
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/seubd" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="123456" />
Minhas configurações de banco estão em outro arquivo chamado de Data Source, pois estou usando JBoss Seam. Minha conexão está certa, o problema é esse mapeamento da classe.
Alguem que não tenha ido almoçar por favor!!! rsrs Me ajudem!!
Veja se existe algum “import” inválido ou diferente para a classe ChuvasDiarias.java
[javax.persistence.* ]
@javax.persistence.Entity is still mandatory, @org.hibernate.annotations.Entity is not a replacement.
Os importes estão corretos
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;