farzac 25 de mai. de 2008
Ola galera
Apos analisar, constatei que o erro se trata da linha 26
Veja o codigo e linha onde o erro é disparado.
1 - package br.com.farzacsystem ;
2 -
3 - import javax.swing.JOptionPane ;
4 - import javax.persistence.* ;
5 -
6 - public class TestePersistencia
7 - {
8 - public static void main ( String [] args )
9 - {
10 - String nome ;
11 - String sobrenome ;
12 - int idade ;
13 -
14 - EntityManagerFactory emf = Persistence . createEntityManagerFactory ( “ TesteJPAPU ” );
15 - EntityManager em = emf . createEntityManager ();
16 - em . getTransaction (). begin ();
17 -
18 - Usuario usr = new Usuario ();
19 - nome = JOptionPane . showInputDialog ( “ Insira o Nome do Usuário : ” );
20 - usr . setNome ( nome );
21 - sobrenome = JOptionPane . showInputDialog ( “ Insira o Sobrenome do Usuário : ” );
22 - usr . setSobrenome ( sobrenome );
23 - idade = Integer . parseInt ( JOptionPane . showInputDialog ( “ Insira sua idade : ” ));
24 - usr . setIdade ( idade );
25 -
26 - em . persist ( usr );
27 - em . getTransaction (). commit ();
28 - em . close ();
29 - emf . close ();
30 - JOptionPane . showMessageDialog ( null , "ID: “+usr.getId()+”\nNome: " + usr . getNome () +
31 - "\nSobrenome: “+usr.getSobrenome()+”\nIdade: " + usr . getIdade (),
32 - “ Usuário Persistido ” , JOptionPane . INFORMATION_MESSAGE );
33 - }
34 - }
A mensagem de erro:
Exception in thread “ main ” java . lang . IllegalArgumentException : Object : br . com . farzacsystem . Usuario @210 b5b 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
Espero que alguem possa me ajudar com relação ao erro .
Desde ja, muito obrigado.
lucasap2005 26 de mai. de 2008
Object : br . com . farzacsystem . Usuario @210 b5b is not a known entity type
Aqui fala que o objeto que você está tentando persistir não é um tipo de entidade conhecida.
Vc declarou seu objeto Usuario como uma entidade?
farzac 27 de mai. de 2008
Ola Lucas
Minha classe Usuario esta :
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 ;
}
}
nellson.maia 14 de abr. de 2010
Alguem conseguiu resolver?
Estou com o mesmo problema…
Andre_Brito 14 de abr. de 2010
Algumas vezes precisa colocar ela dentro do persistence.xml. Eu digo algumas vezes porque quando fiz uma aplicação web pequena eu não precisei (estava usando o Hibernate), mas usando o OpenJPA eu tive que colocar.
Ela eu quis dizer a entidade, com o pacote.
garcia-jj 18 de jul. de 2010
Acho que minha resposta vem um pouco tarde. De qualquer forma, se você roda o Toplink em ambiente não gerenciado é necessário adicionar essa propriedade no seu persistence.xml.
<exclude-unlisted-classes> false</exclude-unlisted-classes>