Ola Pessoal
Estou tentando persistir objetos e estou com o seguinte erro:
init:
deps-jar:
compile:
run:
[TopLink Info]: 2008.07.09 11:56:20.765–ServerSession(21061094)–TopLink, version: Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))
[TopLink Info]: 2008.07.09 11:56:22.765–ServerSession(21061094)–file:/D:/Meus%20Documentos/Projetos/PROJETO_PERSISTENCIA/JavaPersistencia/build/classes/-TesteJPAPU login successful
Exception in thread “main” java.lang.IllegalArgumentException: Object: br.com.farzacsystem.Usuario@56f631 is not a known entity type.
at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:3198)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.persist(EntityManagerImpl.java:190)
at br.com.farzacsystem.TestePersistencia.main(TestePersistencia.java:26)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 17 segundos)
A minha classe Usuario esta assim:
package br.com.farzacsystem;
/**
*
-
@author zaccantte
*/
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.Table;
@Entity
@Table(name = “Usuario”)
@NamedQueries
(
{
@NamedQuery(name = “Usuario.findById”, query = “SELECT u FROM Usuario u WHERE u.id = :id”),
@NamedQuery(name = “Usuario.findByNome”, query = “SELECT u FROM Usuario u WHERE u.nome = :nome”),
@NamedQuery(name = “Usuario.findBySobrenome”, query = “SELECT u FROM Usuario u WHERE u.sobrenome = :sobrenome”),
@NamedQuery(name = “Usuario.findByIdade”, query = “SELECT u FROM Usuario u WHERE u.idade = :idade”)
}
)
public class Usuario implements Serializable
{
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = “id”, nullable = false)
private int id;
@Column(name = "nome", nullable = false)
private String nome;
@Column(name = "sobrenome", nullable = false)
private String sobrenome;
@Column(name = "idade", nullable = false)
private int idade;
public void setId(int id)
{
this.id = id;
}
public int getId()
{
return this.id;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getNome()
{
return this.nome;
}
public void setIdade(int idade)
{
this.idade = idade;
}
public int getIdade()
{
return this.idade;
}
public String getSobrenome()
{
return sobrenome;
}
public void setSobrenome(String sobrenome) {
this.sobrenome = sobrenome;
}
}
A minha classe TestePersistencia esta asiim:
package br.com.farzacsystem;
import javax.swing.JOptionPane;
import javax.persistence.*;
public class TestePersistencia
{
public static void main(String[] args)
{
String nome;
String sobrenome;
int idade;
EntityManagerFactory emf = Persistence.createEntityManagerFactory("TesteJPAPU");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Usuario usr = new Usuario();
nome = JOptionPane.showInputDialog("Insira o Nome do Usuário:");
usr.setNome(nome);
sobrenome = JOptionPane.showInputDialog("Insira o Sobrenome do Usuário:");
usr.setSobrenome(sobrenome);
idade = Integer.parseInt(JOptionPane.showInputDialog("Insira sua idade:"));
usr.setIdade(idade);
em.persist(usr);// persist(usr);
em.getTransaction().commit();
em.close();
emf.close();
JOptionPane.showMessageDialog(null,"ID: "+usr.getId()+"\nNome: "+usr.getNome()+
"\nSobrenome: "+usr.getSobrenome()+"\nIdade: "+usr.getIdade(),
"Usuário Persistido",JOptionPane.INFORMATION_MESSAGE);
}
}
A estrutura da tabela esta assim:
mysql> desc usuario;
±-------------±-------------±-----±----±--------±-----------------+
| Field | Type | Null | Key | Default | Extra |
±-------------±-------------±-----±----±--------±------------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Nome | varchar(60) | NO | | NULL | |
| Sobrenome | varchar(60) | NO | | NULL | |
| Idade | int(11) | YES | | NULL | |
±-------------±--------------±-----±----±--------±-----------------+
4 rows in set (0.00 sec)
Espero qaue alguem possa me ajudar.
Abraços.