Problema ao Salvar Dados com Entity Manager

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;