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("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();
}
}
}
[/CODE]