Fala galera,
Eu aqui mais uma vez com o mesmo erro.
Não consegui encontrar em lugar algum a solução para esse meu problema. Vamos lá:
Estou tentando persistir os dados usando o:
Ele me traz um erro dizendo que não encontrou a minha entidade mapeada (Paciente):
Inicialmente coloquei no meu persistence.xml o mapeamento:
Mas com ou sem esse mapeamento dá erro do mesmo jeito!!! Não é erro na conexão!!!
Obrigado pela ajuda mais uma vez pessoal!
E como está mapeando a classe?
Annotation? xml?
Cadê o código da classe e, se xml, do mapeamento dela?
A classe está mapeada usando annotation:
[code]@Entity
@Table(name=“paciente”)
@Name(“paciente”)
public class Paciente implements Serializable{
private static final long serialVersionUID = 5300018309039633585L;
private String nome;
private String cpf;
private String logradouro;
private String cep;
private String bairro;
private String cidade;
private String complemento;
private String foneFixo;
private String foneCelular;
private String foneComercial;
private String email;
@Column(name="de_logradouro")
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
@Column(name="de_cep")
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
@Column(name="de_bairro")
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
@Column(name="de_cidade")
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
@Column(name="complemento")
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
@Column(name="telefone_fixo")
public String getFoneFixo() {
return foneFixo;
}
public void setFoneFixo(String foneFixo) {
this.foneFixo = foneFixo;
}
@Column(name="telefone_celular")
public String getFoneCelular() {
return foneCelular;
}
public void setFoneCelular(String foneCelular) {
this.foneCelular = foneCelular;
}
@Column(name="telefone_comercial")
public String getFoneComercial() {
return foneComercial;
}
public void setFoneComercial(String foneComercial) {
this.foneComercial = foneComercial;
}
@Column(name="de_email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name="nome_completo")
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(name="de_cpf")
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
}[/code]
Aqui está xml:
[code]<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.ejb.HibernatePersistence
java:/odontoSulDatasource
// Com essa linha ou sem essa linha dá erro!!!
[/code]
A partir do persistence.xml você consegue abrir a classe? E aquela linha deve constar no xml sim.
Consigo acessar a classe sim, pois estou usando o eclipse. Aperto f3 e vai direto para a classe.
Quando eu coloca essa linha no persistence.xml <class>br.com.odontosul.entity.Paciente</class>
aparece um erro gigantesco. Vou colocar somente uma parte dele:
DEPLOYMENTS IN ERROR:
Deployment "persistence.unit:unitName=#odontoSul" is in error due to the following reason(s): java.lang.ClassNotFoundException: br.com.odontosul.entity.Paciente from BaseClassLoader@a52f9b2{VFSClassLoaderPolicy@4d871a69{name=vfsfile:/C:/Java/servidores/jboss-5.1.0.GA/server/default/conf/jboss-service.xml domain=ClassLoaderDomain@54cee271{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.bootstrap.NoAnnotationURLClassLoader@4a0c68c3} roots=[MemoryContextHandler@1624705858[path= context=vfsmemory://a228i-pl6j40-h2dlbsrl-1-h2dlbwil-7 real=vfsmemory://a228i-pl6j40-h2dlbsrl-1-h2dlbwil-7], DelegatingHandler@1176783801[path=ojdbc5.jar context=file:/C:/Java/servidores/jboss-5.1.0.GA/server/default/lib/ real=file:/C:/Java/servidores/jboss-5.1.0.GA/server/default/lib/ojdbc5.jar], DelegatingHandler@2028438184[path=postgresql-8.4-701.jdbc4.jar
t 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)
Uma classe para ser considerada uma Entity ela precisa de 3 coisas:
- Da anotação @Entity
- Construtor default, sem parâmetros
- Da anotação @Id (oq eu não vi na sua classe Paciente) <--------------
Coloquei o @Id, mas ainda não resolveu!!! O erro continua sendo aquele ultimo que postei.
Como você colocou o id da sua classe? Qual o pacote descrito na classe?
Eu acho que você esta utilizando o @Entity do hibernate ao invés do JPA…
O pacote:
Para o Id eu criei uma sequence:
@Id
@SequenceGenerator( name = "paciente_id", sequenceName = "paciente_seq", allocationSize = 1 )
@GeneratedValue( strategy = GenerationType.SEQUENCE, generator = "paciente_id" )
@Column( name = "id", nullable = false )
private Long idPaciente;
[quote=fbl.lucas]Eu acho que você esta utilizando o @Entity do hibernate ao invés do JPA…
++
Também pensei que fosse isso, mas estão aqui todos os imports da minha classe:
[code]package br.com.odontosul.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;[/code]