ronnypeterson 4 de jun. de 2007
Esse é meu arquivo xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns= "http://java.sun.com/xml/ns/persistence" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" version= "1.0" xsi:schemaLocation= "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" >
<persistence-unit name= "pu1" >
<provider> oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<class> generico.model.Estado</class>
<properties>
<property name= "toplink.jdbc.driver" value= "org.postgresql.Driver" />
<property name= "toplink.jdbc.url" value= "jdb:postgresql://200.129.157.201:5432/generico" />
<property name= "toplink.jdbc.user" value= "postgres" />
<property name= "toplink.jdbc.password" value= "654321" />
<property name= "toplink.logging.level" value= "INFO" />
</properties>
</persistence-unit>
</persistence>
Esta é minha classe entity:
package generico.model ;
import java.util.List ;
import javax.persistence.Column ;
import javax.persistence.Entity ;
import javax.persistence.GeneratedValue ;
import javax.persistence.GenerationType ;
import javax.persistence.Id ;
import javax.persistence.OneToMany ;
@Entity
public class Estado
{
@Id
@Column ( insertable = false )
@GeneratedValue ( strategy = GenerationType . SEQUENCE , generator = "estado_id_seq" )
private int id ;
private String sigla ;
private String nome ;
@OneToMany
private List < Cidade > cidades ;
public Estado ()
{
}
....
}
Esta é minha classe de persistência:
package generico.persistence ;
import java.util.List ;
import javax.persistence.EntityManager ;
import javax.persistence.EntityManagerFactory ;
import javax.persistence.Persistence ;
public class BaseDao < T >
{
private static EntityManagerFactory emf ;
private EntityManager em ;
public BaseDao ()
{
emf = Persistence . createEntityManagerFactory ( "pu1" );
em = emf . createEntityManager ();
}
public boolean create ( T obj )
{
em . getTransaction (). begin ();
try
{
em . persist ( obj );
em . getTransaction (). commit ();
return true ;
}
catch ( Exception e )
{
e . printStackTrace ();
em . getTransaction (). rollback ();
return false ;
}
}
E por fim minha classe Client:
public class ClientEstado
{
public static void main ( String [] args )
{
Estado estado = new Estado ();
//Atribui valores a estado
...
//Persistência usando o JPA
BaseDao < Estado > estadoDao = new BaseDao < Estado > ();
estadoDao . create ( estado );
}
}
Esse é o meu código. Vale lembrar que no linux ele tá funcionando legal. No WinXP to usando o Java 1.6.0_01
sidarta_omar_sempreb 8 de nov. de 2008
Seguinte:
Você deve ter o persistence.xml dentro da pasta META-INF e colocar essa pasta dentro do diretório src (raíz dos pacotes) que funciona.
Estranho não?
Abraço,
Sidarta O. S. Silva.