Olá,
estou tentando usar JPA mas qdo tento gravar um objeto me dá o erro abaixo…
o que será que está errado pois estava usando toplink Oracle está bem agor aque tirei e usei
essa configuração persistence.xml está dando erro…
alguém pode meajudar …
o que estou usando :
-JAVA 1.5
DIRETÓRIO
- ejb3-persistence.jar
- HIBERNATE3.JAR
- MYSQL-CONNECTOR-JAVA-5.0.4-BIN.JAR
<ul>
<li>Hibernate Annotations <a href="http://3.3.1.GA">3.3.1.GA</a>
</li>
<li>Hibernate 3.2.6</li>
<li>hibernate.properties not found</li>
<li>Bytecode provider name : cglib</li>
<li>using JDK 1.4 java.sql.Timestamp handling</li>
<li>Hibernate EntityManager <a href="http://3.3.2.GA">3.3.2.GA</a>
</li>
<li>Binding entity from annotated class: br.com.exemplojpa.modelo.Usuario</li>
<li>Bind entity br.com.exemplojpa.modelo.Usuario on table Usuario</li>
<li>Binding entity from annotated class: br.com.exemplojpa.modelo.Centro</li>
<li>Bind entity br.com.exemplojpa.modelo.Centro on table Centro</li>
<li>Binding entity from annotated class: br.com.exemplojpa.modelo.Universidade</li>
<li>Bind entity br.com.exemplojpa.modelo.Universidade on table Universidade</li>
<li>Hibernate Validator <a href="http://3.0.0.GA">3.0.0.GA</a>
Exception in thread “main” javax.persistence.PersistenceException: [PersistenceUnit: exemploJPA] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
at br.com.exemplojpa.persistencia.UsuarioDAO.<init>(UsuarioDAO.java:28)
at br.com.exemplojpa.negocio.UsuarioBusiness.inserirUsuario(UsuarioBusiness.java:24)
at br.com.exemplojpa.teste.TesteExemploJPA.main(TesteExemploJPA.java:39)
Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Collection, at table: Universidade, for columns: [org.hibernate.mapping.Column(centros)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:269)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
at org.hibernate.mapping.Property.isValid(Property.java:185)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:440)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1108)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1293)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
… 6 more</li>
</ul>
<hr>
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;
import javax.persistence.Table;
/**
*
<ul>
<li>
</li>
</ul>
*/
@Entity
@Table(name = "Usuario")
public class Usuario {
<pre><code>@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String login;
@Column
private String password;
@Column
private String nome;
/*
* Gets e Sets
*/
public class TesteExemploJPA {
public static void main(String[] args) {
/*
* Criando o objeto usuário
*/
Usuario usuario = new Usuario();
usuario.setLogin("mary171");
usuario.setPassword("mary99");
usuario.setNome("lock991");
/*
* 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());
System.out.println("-----------------------------------------");
System.out.println("Lista Todos Usuários");
List lista = usuarioBusiness.listaTodosUsuario();
for (Iterator iterator = lista.iterator(); iterator.hasNext();) {
Usuario usuarios = (Usuario) iterator.next();
System.out.println("---------------------------------");
System.out.println("id ="+usuarios.getId());
System.out.println("login ="+usuarios.getLogin());
System.out.println("senha ="+usuarios.getPassword());
System.out.println("nome ="+usuarios.getNome());
}
// remove Usuario
Usuario usuarioRemove = new Usuario();
usuarioRemove.setId(12);
usuarioBusiness.removeUsuario(usuarioRemove);
// Alteração Usuario
usuarioRemove = new Usuario();
usuarioRemove.setId(23);
usuarioBusiness.alteraUsuario(usuarioRemove);
}
}
<?xml version=“1.0” encoding=“UTF-8”?> <persistence version=“1.0” xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=“http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd”> <persistence-unit name=“exemploJPA” transaction-type=“RESOURCE_LOCAL”> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>br.com.exemplojpa.modelo.Usuario</class> <class>br.com.exemplojpa.modelo.Centro</class> <class>br.com.exemplojpa.modelo.Universidade</class> <properties> <property name=“hibernate.archive.autodetection” value=“class”/> <property name=“hibernate.connection.driver_class” value=“com.mysql.jdbc.Driver” /> <property name=“hibernate.connection.url” value=“jdbc:mysql://localhost:3306/exemplojpa” /> <property name=“hibernate.connection.username” value=“root”/> <property name=“hibernate.connection.password” value=“root”/> <property name=“hibernate.dialect” value=“org.hibernate.dialect.MySQLDialect” /> <property name=“hibernate.show_sql” value=“true” /> <property name=“hibernate.hbm2ddl.auto” value=“create-tables” /> <property name=“hibernate.cache.provider_class” value=“org.hibernate.cache.OSCacheProvider”/> </properties> </persistence-unit></persistence>
/** * * * * * * */ public class UsuarioDAO {private EntityManagerFactory factory = null;
private EntityManager manager = null;
public UsuarioDAO() {
factory = Persistence.createEntityManagerFactory("exemploJPA");
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);
transaction.commit();
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
}
return retorno;
}
public List listaTodosUsuario(){
EntityTransaction transaction = manager.getTransaction();
Usuario usuario = new Usuario();
List lista = new ArrayList(0);
try{
//1Query q = manager.createQuery("select u.id ,u.login ,u.password,u.nome from USUARIO u where u.id > 1");
//lista = q.getResultList();
//2Query q = manager.createQuery("select object(u) from Usuario u where c.id > :cod" )
//.setParameter("cod", "10");
//lista = q.getResultList();
lista = manager.createQuery("select object(u) FROM Usuario u where u.id > " + 10).getResultList();
usuario = (Usuario) manager.createQuery("FROM Usuario where id > 1").getSingleResult();
System.out.println("*******MOstra createQuery ..."+usuario.getNome());
}catch(Exception e){
System.out.println("Erro ="+e);
}
return lista;
}
public void removeUsuario(Usuario usuario){
EntityTransaction transaction = manager.getTransaction();
try{
transaction.begin();
Usuario ur = manager.find(Usuario.class, usuario.getId());
if (ur!=null){
manager.remove(ur);
transaction.commit();
System.out.println("Usuário removido com sucesso !!!!"+ ur.getId()+" "+ur.getNome());
}
}catch(Exception e){
transaction.rollback();
System.out.println("Erro="+e);
}finally{
manager.close();
}
}
public void alteraUsuario(Usuario usuario){
EntityTransaction transaction = manager.getTransaction();
try{
transaction.begin();
Usuario ur = manager.find(Usuario.class, usuario.getId());
System.out.println("_________Antes Update______");
System.out.println("Id="+ur.getId());
System.out.println("Nome="+ur.getNome());
System.out.println("login="+ur.getLogin());
System.out.println("Senha="+ur.getPassword());
ur.setNome("Meu Nome Novo");
ur.setLogin("Novo Login");
ur.setPassword("Nova Senha");
manager.persist(ur);
transaction.commit();
System.out.println("Usuário alterado com sucesso !!!!"+ ur.getId()+" "+ur.getNome());
System.out.println("_________Depois Update______");
System.out.println("Id="+ur.getId());
System.out.println("Nome="+ur.getNome());
System.out.println("login="+ur.getLogin());
System.out.println("Senha="+ur.getPassword());
}catch(Exception e){
transaction.rollback();
System.out.println("Erro="+e);
}finally{
manager.close();
}
}