Oi pessoal. Estou começando a estudar o hibernate e me deparei com esta exception:
Exception in thread "main" java.lang.IllegalArgumentException: Unknown entity: com.htcursos.model.entity.Usuario
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:878)
at JPAUtilTest.main(JPAUtilTest.java:22)
Já revisei o código todo e não encontrei nada diferente do tutorial que estou seguindo. Dei uma pesquisada e vi também na documentação que esta exception poderia ocorrer caso a annotation estivesse incorreta, mas conferi e está correta na classe Usuario.
Alguem tem alguma idéia?
Seguem ai as classes e xml’s. A exception ocorre quando executo a classe JPAUtilTest
[code]import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
@Entity
public class Usuario{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="seq_usu", initialValue=1)
@GeneratedValue(generator="seq_usu", strategy=GenerationType.AUTO)
private Long id;
private String nome;
private String email;
private String senha;
...
//getters e setters
}
[/code]
[code]import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class JPAUtil {
protected static EntityManagerFactory entityManagerFactory;
protected static EntityManager entityManager;
static{
//instanciando a fabrica
entityManagerFactory = Persistence.createEntityManagerFactory("persistence-util");
//instanciando o gerenciador
entityManager = entityManagerFactory.createEntityManager();
};
/**
* metodo que retorna um objeto EntityManager
* @return EntityManager
*/
public static EntityManager abreConexao(){
return entityManager;
}
}[/code]
[code]import javax.persistence.EntityManager;
import com.htcursos.model.entity .Usuario;
import com.htcursos.model.util.JPAUtil;
public class JPAUtilTest {
/**
* @param args
*/
public static void main(String[] args) {
//instancia do gerenciador de entidades
EntityManager em = JPAUtil.abreConexao();
//objeto para ser persistido
Usuario usuario = new Usuario();
usuario.setNome("Diogo");
usuario.setSenha("123");
usuario.setEmail("diomsg");
em.persist(usuario);
}
}[/code]
[code]
<persistence-unit name="persistence-util" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.connection.username" value="postgres" />
<property name="hibernate.password" value="postgres" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/cjweb3db" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
</properties>
</persistence-unit>
[/code]
[code]
4.0.0
com.htcursos
cjweb3
0.0.1-SNAPSHOT
war
cjweb3
curso java ee avançado
<properties>
<hibernate.group>org.hibernate</hibernate.group>
<hibernate.version>4.2.6.Final</hibernate.version>
<slf4j.version>1.7.5</slf4j.version>
</properties>
<dependencies>
<dependency>
<groupId>${hibernate.group}</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>${hibernate.group}</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- Banco de dados -->
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.4-702.jdbc4</version>
</dependency>
</dependencies>
[/code]