JPA...erro inserir um objeto.... "main" javax.persistence.PersistenceException: [PersistenceUnit: ex

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

[CODE]

  • Hibernate Annotations 3.3.1.GA
  • Hibernate 3.2.6
  • hibernate.properties not found
  • Bytecode provider name : cglib
  • using JDK 1.4 java.sql.Timestamp handling
  • Hibernate EntityManager 3.3.2.GA
  • Binding entity from annotated class: br.com.exemplojpa.modelo.Usuario
  • Bind entity br.com.exemplojpa.modelo.Usuario on table Usuario
  • Binding entity from annotated class: br.com.exemplojpa.modelo.Centro
  • Bind entity br.com.exemplojpa.modelo.Centro on table Centro
  • Binding entity from annotated class: br.com.exemplojpa.modelo.Universidade
  • Bind entity br.com.exemplojpa.modelo.Universidade on table Universidade
  • Hibernate Validator 3.0.0.GA
    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

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
*

*/
@Entity
@Table(name = "Usuario")
public class Usuario {

@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(&quot;mary171&quot;);
	usuario.setPassword(&quot;mary99&quot;);
	usuario.setNome(&quot;lock991&quot;);
	
	
	/*
	 * 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(&quot;         Exemplo JPA         &quot;);
	System.out.println(&quot;Id: &quot; + usuarioBanco.getId());
	System.out.println(&quot;Login: &quot; + usuarioBanco.getLogin());
	System.out.println(&quot;Senha: &quot; + usuarioBanco.getPassword());
	System.out.println(&quot;Nome: &quot; + usuarioBanco.getNome());
	
	System.out.println(&quot;-----------------------------------------&quot;);
	System.out.println(&quot;Lista Todos Usuários&quot;);
	List lista = usuarioBusiness.listaTodosUsuario();
	
	for (Iterator iterator = lista.iterator(); iterator.hasNext();) {
		Usuario usuarios = (Usuario) iterator.next();
		System.out.println(&quot;---------------------------------&quot;);
		System.out.println(&quot;id =&quot;+usuarios.getId());
		System.out.println(&quot;login =&quot;+usuarios.getLogin());
		System.out.println(&quot;senha =&quot;+usuarios.getPassword());
		System.out.println(&quot;nome =&quot;+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(&quot;exemploJPA&quot;);
	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(&quot;Erro: &quot; + 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(&quot;Erro: &quot; + 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(&quot;select u.id ,u.login ,u.password,u.nome from USUARIO u where u.id &gt; 1&quot;);
		
		//lista = q.getResultList();
		
		//2Query q  = manager.createQuery(&quot;select object(u) from Usuario u where c.id &gt; :cod&quot; )
		//.setParameter(&quot;cod&quot;, &quot;10&quot;);
		//lista = q.getResultList();
		
		 lista = manager.createQuery(&quot;select object(u) FROM Usuario u where u.id &gt; &quot; + 10).getResultList();
		
		usuario = (Usuario) manager.createQuery(&quot;FROM Usuario where id &gt; 1&quot;).getSingleResult();
        System.out.println(&quot;*******MOstra createQuery ...&quot;+usuario.getNome());
	}catch(Exception e){
		System.out.println(&quot;Erro =&quot;+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(&quot;Usuário removido com sucesso !!!!&quot;+ ur.getId()+&quot; &quot;+ur.getNome());
		}
	}catch(Exception e){
		transaction.rollback();
		System.out.println(&quot;Erro=&quot;+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(&quot;_________Antes Update______&quot;);
		System.out.println(&quot;Id=&quot;+ur.getId());
		System.out.println(&quot;Nome=&quot;+ur.getNome());
		System.out.println(&quot;login=&quot;+ur.getLogin());
		System.out.println(&quot;Senha=&quot;+ur.getPassword());
		
		ur.setNome(&quot;Meu Nome Novo&quot;);
		ur.setLogin(&quot;Novo Login&quot;);
		ur.setPassword(&quot;Nova Senha&quot;);
		manager.persist(ur);
		transaction.commit();
		System.out.println(&quot;Usuário alterado com sucesso !!!!&quot;+ ur.getId()+&quot; &quot;+ur.getNome());
		System.out.println(&quot;_________Depois Update______&quot;);
		System.out.println(&quot;Id=&quot;+ur.getId());
		System.out.println(&quot;Nome=&quot;+ur.getNome());
		System.out.println(&quot;login=&quot;+ur.getLogin());
		System.out.println(&quot;Senha=&quot;+ur.getPassword());
		
	}catch(Exception e){
		transaction.rollback();
		System.out.println(&quot;Erro=&quot;+e);
	}finally{
		manager.close();
	}
	
	
}

}


[/CODE]

Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Collection, at table: Universidade, for columns: [org.hibernate.mapping.Column(centros)]

Informe o atributo targetEntity do relacionamento ou utilize generics. Ex:

public class Universidade{ ... java.util.Collection<Centro> centros; ... }