2016-04-10 6 views
0

У меня есть исключение, когда я использую спящий режим в Maven. Версия спящего режима - 5.1.0. Исключение: enter image description here Вот моя структура проекта: enter image description hereHibernate Maven MappingException Неизвестный объект

Вот мой класс Entity ABC:

package com; 
import javax.persistence.*; 
@Entity 

@Table(name = "abc_inf") 

public class ABC { 

    @[email protected] 
    private Integer id; 

    private String name; 

    public ABC() { 
    } 

    setters and getters omitted 

} 

Вот мой основной класс:

package com; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
public class Main { 
    public static void main(String[] args) { 
     Configuration conf = new Configuration().configure(); 
     ServiceRegistry sr = new    StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build(); 
     SessionFactory sf = conf.buildSessionFactory(sr); 
     Session session = sf.openSession(); 

     ABC abc = new ABC(); 
     abc.setName("abc"); 

     session.save(abc); 
     session.flush(); 
     session.close(); 
     sf.close(); 
    } 
} 

Вот мой hibernate.cfg.xml:

<hibernate-configuration> 
    <session-factory> 
    mysql connection and properties settings omitted 
    <mapping class="com.ABC"/> 
    </session-factory> 
</hibernate-configuration> 
+0

Можете ли вы подтвердить, что вы вызываете hibernate.cfg.xml настроить объект, прежде чем запустить основную программу – LearningPhase

+0

она использует hibernate.cfg.xml, в противном случае было бы выбросить некоторые исключения соединения поскольку он не мог подключиться к базе данных в первую очередь. Я также распечатал свойства из конфигурации, он идентичен свойствам, указанным в файле hibernate.cfg.xml – user2716189

ответ

0

Это проблема с конфигурацией Hibernate 5. Вы не можете использовать этот код для создания сессионного автокрепежа

Configuration conf = new Configuration().configure(); 
ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build(); 
SessionFactory sf = conf.buildSessionFactory(sr); 

Используйте это вместо

SessionFactory sf = new Configuration().configure().buildSessionFactory(); 

Приведи для дополнительных заметок

Hibernate 5 :- org.hibernate.MappingException: Unknown entity

0

Проблема решена, если она использует версию Hibernate 4

+0

. Пожалуйста, добавьте его в вопрос, а не как отдельный ответ. –

0

Вы должны добавить аннотированные классы конфигурацию спящего режима. Используйте следующий код

AnnotationConfiguration conf = new AnnotationConfiguration(); 
conf.addAnnotatedClass(ABC.class); 
SessionFactry sf = conf.configure(hbmFile).buildSessionFactory(); 
+0

Использование 'AnnotationConfiguration' допустимо только для Hibernate 3. Этот код будет работать с' Configuration', но нужно добавить каждый устойчивый класс. –

Смежные вопросы