1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Hibernate JPA sem Erro no Console Eclipse Junit informe Erro e esta tudo Ok o que fazer ? .

Meu Hibernate.cfg Esta Correto estou mapeando corretamente, Estou usando @Entity e meu import feito foi import javax.persistence.Entity;. no meu console não mostra Erro no JUnit informa Org.hibernate.MappingException: Unknown entity

Meu Hibernate.cfg

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/db_sistec</property>
        <property name="connection.username">root</property>
        <property name="connection.password">fatec</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>


        <!-- Disable the second-level cache -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
         <property name="hbm2ddl.auto">update</property>

        <mapping class="br.com.sistec.domain.Usuario"/>
        <mapping class="br.com.sistec.domain.Cargo"/>
         <mapping class="br.com.sistec.domain.Descarte"/>
        <mapping class="br.com.sistec.domain.Equipamento"/>


        <mapping class="br.com.sistec.util.HibernateUtil"/>


    </session-factory>

</hibernate-configuration>

Minha class Hibernate.Util

package br.com.sistec.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

import br.com.sistec.bean.UsuarioBean;
import br.com.sistec.domain.Cargo;
import br.com.sistec.domain.Descarte;
import br.com.sistec.domain.Equipamento;
import br.com.sistec.domain.Usuario;

public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {

            Configuration configuration = new Configuration();

            configuration.addAnnotatedClass(Usuario.class);
            configuration.addAnnotatedClass(Equipamento.class);
            configuration.addAnnotatedClass(Cargo.class);
            configuration.addAnnotatedClass(Descarte.class);



            configuration.configure();

            ServiceRegistry serviceregistry = new StandardServiceRegistryBuilder()
                    .applySettings(configuration.getProperties()).build();

            SessionFactory sessionFactory = configuration
                    .buildSessionFactory(serviceregistry);

            return sessionFactory;

        }

        catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }




}

E minha Classe Equipamento que eu quero inserir no Banco

package br.com.sistec.domain;

import java.sql.Date;
import java.time.LocalDate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;




    @Entity    
    @Table(name="tbl_equipamento")
    public class Equipamento {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name= "eqpto_id")
    private Long codigo;



    @Column(name = "eqpto_nome", length = 40, nullable = false)
    private String nome;

    @Column(name = "eqpto_tipo", length = 40, nullable = false)
    private String tipo;


    @Column(name="eqpto_lastcheck")
    @Temporal(TemporalType.DATE)
    private LocalDate lastcheck;

    @Column(name="eqpto_nextcheck")
    @Temporal(TemporalType.DATE)
    private LocalDate nextchek;


    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public LocalDate getLastcheck() {
        return lastcheck;
    }

    public void setLastcheck(LocalDate lastcheck) {
        this.lastcheck = lastcheck;
    }

    public LocalDate getNextchek() {
        return nextchek;
    }

    public void setNextchek(LocalDate nextchek) {
        this.nextchek = nextchek;
    }

    }

Minha classe de Teste em que eu rodo o Junit

package br.com.sistec.test;

import java.sql.Date;
import java.time.LocalDate;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.junit.Test;

import br.com.sistec.dao.EquipamentoDAO;
import br.com.sistec.domain.Equipamento;
import br.com.sistec.domain.Usuario;
import br.com.sistec.util.HibernateUtil;

public class EquipamentoDAOTest {


    @Test
    public void inserir(){


        LocalDate agora = LocalDate.now();

        Equipamento equipamento = new Equipamento();

        equipamento.setNome("Parquimentro");
        equipamento.setLastcheck(agora);
        equipamento.setNextchek(agora);
        equipamento.setTipo("teste");




         EquipamentoDAO equipamentoSalvar = new EquipamentoDAO();

         equipamentoSalvar.salvar(equipamento);

    }



    }
CLASSE GENERIC DAO


package br.com.sistec.dao;

          import java.util.List;
import java.util.Map;

import br.com.sistec.domain.Usuario;


    public interface GenericDAO<T> {
            public T get(Class<T> cl, Long id);
            public T save(T object);
            public void update(T object);
            public void delete(T object);
            public List<T> query(String hsql, Map<String, Object> params);


    }

CLASSE GENERIC DAO IMPL

public class GenericDAOImpl<T> implements GenericDAO<T> {


        private SessionFactory sessionFactory;

        public GenericDAOImpl(Class<T> cl, SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
            if (sessionFactory == null)
                throw new RuntimeException("Session factory is null!!!");
        }




        @Override
        public void update(T object) {
            Session session = HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();

            try {
                session.merge(object);
                session.getTransaction().commit();
            } catch (HibernateException e) {
                 session.getTransaction().rollback();
                 throw e;
                 } finally {
                 session.close();
                 }


}


        @Override
        public T get(Class<T> cl, Long id) {
            Session session = sessionFactory.getCurrentSession();
            session.beginTransaction();
            @SuppressWarnings("unchecked")
            T element = (T) session.get(cl, id);
            session.getTransaction().commit();
            return element;
        }


         @Override
            public T save(T object) {
                Session session = HibernateUtil.getSessionFactory().openSession();
                session.beginTransaction();

                try {
                    session.persist(object);
                    session.getTransaction().commit();
                } catch (HibernateException e) {
                    session.getTransaction().rollback();
                    throw e;
                } finally {
                    session.close();
                }
                return object;
            }
        /*
        @Override
         public T save(T object){
            Session session = sessionFactory.getCurrentSession();
            session.beginTransaction();
            session.save(object);
            session.getTransaction().commit();
            return object;
        }*/



         public void delete(T object) {
             Session session = HibernateUtil.getSessionFactory().openSession();
             session.beginTransaction();
             try {
             session.delete(object);
             session.getTransaction().commit();
             } catch (HibernateException e) {
             session.getTransaction().rollback();
             throw e;
             } finally {
             session.close();
             }


        }


        @SuppressWarnings("unchecked")
        @Override
        public List<T> query(String hsql, Map<String, Object> params) {
            Session session = sessionFactory.getCurrentSession();
            session.beginTransaction();
            Query query = session.createQuery(hsql);
            if (params != null) {
                for (String i : params.keySet()) {
                    query.setParameter(i, params.get(i));
                }
            }

            List<T> result = null;
            if ((hsql.toUpperCase().indexOf("DELETE") == -1)
                    && (hsql.toUpperCase().indexOf("UPDATE") == -1)
                    && (hsql.toUpperCase().indexOf("INSERT") == -1)) {
                result = query.list();
            } else {
            }
            session.getTransaction().commit();

            return result;
        }


    }


CLASSE EQUIPAMENTO DAO

package br.com.sistec.dao;

import org.hibernate.HibernateException;
import org.hibernate.Session;

import br.com.sistec.domain.Equipamento;
import br.com.sistec.util.HibernateUtil;

public class EquipamentoDAO {



    public void salvar (Equipamento equipamento){
         Session session = HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();

            try {
                session.persist(equipamento);
                session.getTransaction().commit();
            } catch (HibernateException e) {
                session.getTransaction().rollback();
                throw e;
            } finally {
                session.close();
            }
        }

}
  • Poste sua Classe DAO, EquipamentoDAO

    Janerson Douglas   09 de dez de 2015
  • Editei o Primeiro codigo postado e inseri no codigo acima

    Ivan Yanez   09 de dez de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags hibernate java-ee jpa junit java java8 ou faça a sua própria pergunta.