【问题标题】:Loading mapping file Hibernate 4加载映射文件 Hibernate 4
【发布时间】:2015-10-20 20:57:16
【问题描述】:

从 hibernate.cfg.xml 文件加载映射文件时遇到问题

<?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

线程“主”org.hibernate.MappingException 中的异常:未知 实体:com.test.dto.User

但如果我在Configuration 实例中手动添加映射:

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

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

    }

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

【问题讨论】:

    标签: java hibernate jakarta-ee


    【解决方案1】:

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

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

    【讨论】:

    • @DGomez 我很高兴 :)
    猜你喜欢
    • 2014-04-14
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2017-01-09
    • 1970-01-01
    相关资源
    最近更新 更多