paribe 27 de nov. de 2008
public class GeraTabelas {
/**
* @param args
*/
public static void main ( String [] args ) {
// TODO Auto-generated method stub
EntityManagerFactory factory = null ;
factory = Persistence . createEntityManagerFactory ( "exemploJPA1" );
System . out . println ( "gerou...." );
}
}
---
& lt ; persistence - unit name = "exemploJPA1" transaction - type = "RESOURCE_LOCAL" & gt ;
& lt ; provider & gt ; org . hibernate . ejb . HibernatePersistence & lt ; / provider & gt ;
& lt ; class & gt ; br . com . exemplojpa . modelo . Usuario & lt ; / class & gt ;
& lt ; properties & gt ;
& lt ; property name = "hibernate.archive.autodetection" value = "class" /& gt ;
& lt ; property name = "hibernate.connection.driver_class" value = "com.mysql.jdbc.Driver" /& gt ;
& lt ; property name = "hibernate.connection.url" value = "jdbc:mysql://localhost:3306/exemplojpa" /& gt ;
& lt ; property name = "hibernate.connection.username" value = "root" /& gt ;
& lt ; property name = "hibernate.connection.password" value = "root" /& gt ;
& lt ; property name = "hibernate.dialect" value = "org.hibernate.dialect.MySQLDialect" /& gt ;
& lt ; property name = "hibernate.show_sql" value = "true" /& gt ;
& lt ; property name = "hibernate.hbm2ddl.auto" value = "create" /& gt ;
& lt ; / properties & gt ;
& lt ; / persistence - unit & gt ;
---
@Entity
public class Usuario {
@Id
@GeneratedValue ( strategy = GenerationType . IDENTITY )
private Integer id ;
@Column
private String login ;
@Column
private String password ;
@Column
private String nome ;
71C4700 27 de nov. de 2008
Tenta colocar no persistence as classes que voce vai utilizar
Usuario
paribe 27 de nov. de 2008
mesma coisa…???
& lt ; persistence - unit name = "exemploJPA1" transaction - type = "RESOURCE_LOCAL" & gt ;
& lt ; provider & gt ; org . hibernate . ejb . HibernatePersistence & lt ; / provider & gt ;
& lt ; class & gt ; br . com . exemplojpa . modelo . Usuario & lt ; / class & gt ;
& lt ; class & gt ; br . com . exemplojpa . modelo . Centro & lt ; / class & gt ;
& lt ; class & gt ; br . com . exemplojpa . modelo . Universidade & lt ; / class & gt ;
& lt ; properties & gt ;
& lt ; property name = "hibernate.archive.autodetection" value = "class" /& gt ;
& lt ; property name = "hibernate.connection.driver_class" value = "com.mysql.jdbc.Driver" /& gt ;
& lt ; property name = "hibernate.connection.url" value = "jdbc:mysql://localhost:3306/exemplojpa" /& gt ;
& lt ; property name = "hibernate.connection.username" value = "root" /& gt ;
& lt ; property name = "hibernate.connection.password" value = "root" /& gt ;
& lt ; property name = "hibernate.dialect" value = "org.hibernate.dialect.MySQLDialect" /& gt ;
& lt ; property name = "hibernate.show_sql" value = "true" /& gt ;
& lt ; property name = "hibernate.hbm2ddl.auto" value = "create-tables" /& gt ;
& lt ; / properties & gt ;
& lt ; / persistence - unit & gt ;
---
Exception in thread "main" java . lang . NullPointerException
at oracle . toplink . essentials . ejb . cmp3 . EntityManagerFactoryProvider . createEntityManagerFactory ( EntityManagerFactoryProvider . java : 120 )
at javax . persistence . Persistence . createEntityManagerFactory ( Persistence . java : 52 )
at javax . persistence . Persistence . createEntityManagerFactory ( Persistence . java : 34 )
at br . com . exemplojpa . persistencia . UsuarioDAO . & lt ; init & gt ;( UsuarioDAO . java : 25 )
at br . com . exemplojpa . negocio . UsuarioBusiness . inserirUsuario ( UsuarioBusiness . java : 20 )
at br . com . exemplojpa . teste . TesteExemploJPA . main ( TesteExemploJPA . java : 39 )
--
import javax.persistence.EntityManager ;
import javax.persistence.EntityManagerFactory ;
import javax.persistence.EntityTransaction ;
import javax.persistence.Persistence ;
import br.com.exemplojpa.modelo.Usuario ;
/**
*
*
*
*
*
*
*/
public class UsuarioDAO {
private EntityManagerFactory factory = null ;
private EntityManager manager = null ;
public UsuarioDAO () {
factory = Persistence . createEntityManagerFactory ( "exemploJPA1" );
manager = factory . createEntityManager ();
}
/**
* Inserindo um usuário
*
* @param usuario
*/
public void inserirUsuario ( Usuario usuario ) {
EntityTransaction transaction = manager . getTransaction ();
try {
transaction . begin ();
manager . persist ( usuario );
transaction . commit ();
} catch ( Exception e ) {
transaction . rollback ();
System . err . println ( "Erro: " + e . getMessage ());
} finally {
manager . close ();
}
}
/**
* Pesquisar um usuário
*
* @param usuario
*/
public Usuario pesquisarUsuario ( Integer id , Usuario usuario ) {
EntityTransaction transaction = manager . getTransaction ();
Usuario retorno = null ;
try {
transaction . begin ();
retorno = ( Usuario ) manager . find ( Usuario . class , id );
} catch ( Exception e ) {
transaction . rollback ();
System . err . println ( "Erro: " + e . getMessage ());
} finally {
manager . close ();
}
return retorno ;
}
}
---
**
*
*
*
*
*
*
*/
public class TesteExemploJPA {
public static void main ( String [] args ) {
/*
* Criando o objeto usuário
*/
Usuario usuario = new Usuario ();
usuario . setLogin ( "mary" );
usuario . setPassword ( "mary" );
usuario . setNome ( "lock" );
/*
* Instanciando a classe de negócio
*/
UsuarioBusiness usuarioBusiness = new UsuarioBusiness ();
/*
* Inserindo um usuário no banco
*/
usuarioBusiness . inserirUsuario ( usuario );
/*
* Pesquisando o usuário inserido no banco
*/
Usuario usuarioBanco = new Usuario ();
usuarioBanco = usuarioBusiness . pesquisarUsuario ( usuario );
/*
* Mostrando o resultado da consulta no banco
*/
System . out . println ();
System . out . println ( " Exemplo JPA " );
System . out . println ( "Id: " + usuarioBanco . getId ());
System . out . println ( "Login: " + usuarioBanco . getLogin ());
System . out . println ( "Senha: " + usuarioBanco . getPassword ());
System . out . println ( "Nome: " + usuarioBanco . getNome ());
}
}
71C4700 27 de nov. de 2008
paribe:
& lt ; persistence - unit name = "exemploJPA1" transaction - type = "RESOURCE_LOCAL" & gt ;
& lt ; provider & gt ; org . hibernate . ejb . HibernatePersistence & lt ; / provider & gt ;
& lt ; class & gt ; br . com . exemplojpa . modelo . Usuario & lt ; / class & gt ;
& lt ; properties & gt ;
& lt ; property name = "hibernate.archive.autodetection" value = "class" /& gt ;
& lt ; property name = "hibernate.connection.driver_class" value = "com.mysql.jdbc.Driver" /& gt ;
& lt ; property name = "hibernate.connection.url" value = "jdbc:mysql://localhost:3306/exemplojpa" /& gt ;
& lt ; property name = "hibernate.connection.username" value = "root" /& gt ;
& lt ; property name = "hibernate.connection.password" value = "root" /& gt ;
& lt ; property name = "hibernate.dialect" value = "org.hibernate.dialect.MySQLDialect" /& gt ;
& lt ; property name = "hibernate.show_sql" value = "true" /& gt ;
& lt ; property name = "hibernate.hbm2ddl.auto" value = "create" /& gt ;
& lt ; / properties & gt ;
& lt ; / persistence - unit & gt ;
Seu problema pode ser que esta tentando utilizar as propiedades do Hibernate sem importar as bibliotecas, voce deve estar utilizando o tooplink e no seru persistence as propeidades do Hibernate.
Ficaria mais ou menos assim:
& lt ; persistence - unit name = "exemploJPA1" transaction - type = "RESOURCE_LOCAL" & gt ;
& lt ; provider & gt ; oracle . toplink . essentials . ejb . cmp3 . EntityManagerFactoryProvide & lt ; / provider & gt ;
& lt ; class & gt ; br . com . exemplojpa . modelo . Usuario & lt ; / class & gt ;
& lt ; properties & gt ;
& lt ; property name = "toplink.jdbc.url" value = "jdbc:mysql://localhost:3306/exemplojpa" /& gt ;
& lt ; property name = "toplink.jdbc.user" value = "root" /& gt ;
& lt ; property name = "toplink.jdbc.driver" value = "com.mysql.jdbc.Driver" /& gt ;
& lt ; property name = "toplink.jdbc.password" value = "root" /& gt ;
& lt ; / properties & gt ;
& lt ; / persistence - unit & gt ;
& lt ; / persistence & gt ;
Vê se é isso e posta, pois não sei ao certo se é realmente isso
paribe 28 de nov. de 2008
Obrigado pelo retorno…
mas tenho uma duvida só consigo fazer isso com um toplink…fiz um teste com TopLink da Oracle
mas queria ver outra situação com outra opção sem esse da Oracle ???
O que você sugeri …
Tenho que usar um toplink ??? minha duvida
71C4700 28 de nov. de 2008
Cara seria melhor utilizar o Hibernate, devido material e exemplo na net.
Mas cada um caso é um caso.