hibernate.cfg.xml映射资源

时间:2012-03-20 23:58:28

标签: hibernate maven

有没有办法使用正则表达式(或只是*)告诉Hibernate获取给定目录中甚至项目中的所有hbm.xml文件?我只是对我的数据库进行了逆向工程,并且不想用< mapping resource =“...”>

指定一百多个表。

我正在使用Maven来运行hbm2java。我是否需要在组件配置中指明一些内容?

我的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">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@....</property>
        <property name="hibernate.connection.username">hithere</property>
        <property name="hibernate.connection.password">shhhh</property>
        <property name="hibernate.default_schema">foobar</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

        <mapping resource="com/foo/bar/db/Blip.hbm.xml" />
        <mapping resource="com/foo/bar/db/Blap.hbm.xml" />
        <mapping resource="com/foo/bar/db/Blop.hbm.xml" />
    </session-factory>
</hibernate-configuration>

1 个答案:

答案 0 :(得分:1)

我认为hibernate.cfg.xml不支持使用正则表达式来有选择地导入资源。您可以尝试以实用方式导入资源。在调用buildSessionFactory()Configuration之前构建SessionFactory,使用正则表达式找出要暂停到的映射文件路径列表选择,然后使用addResource()addClass()将其添加到Configuration对象。

或者,如果您将JPA与hibernate一起用作实现,则可以通过将属性hibernate.archive.autodetection设置为hbm来启用所有hbm.xml文件的自动发现(请参阅this