2015-10-20 106 views
0

加载映射文件休眠4

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
             "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
    <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property> 
    <property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost</property> 
    <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property> 
    <property name="hibernate.hbm2ddl.auto">create-drop</property> 
    <mapping resource="User.hbm.xml"/> 
</session-factory> 
</hibernate-configuration> 

映射文件是没有得到在SessionFactory

异常加载hibernate.cfg.xml文件加载映射文件时碰到的问题在线程 “主要” org.hibernate.MappingException:未知 实体:com.test.dto.User

,但如果我添加映射manua lly在Configuration实例中:

static { 
     Configuration config = new Configuration().configure().addResource("User.hbm.xml"); 

     ServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build(); 
     sessionFactory = config.buildSessionFactory(registry); 

    } 

映射工作正常......,有什么建议?

回答

2

看起来像一个问题是一样的here。您不能将配置与new Configuration().configure()config.buildSessionFactory(registry)混合。您应该使用StandardServiceRegistryBuilder进行所有配置。 类似这样的东西

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). 
    configure().build(); 
SessionFactory sessionFactory= new Configuration().buildSessionFactory(serviceRegistry);  
+0

工作正常! :D – DGomez

+0

@DGomez我很高兴:) –