有没有办法使用正则表达式(或只是*)告诉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>
答案 0 :(得分:1)
我认为hibernate.cfg.xml
不支持使用正则表达式来有选择地导入资源。您可以尝试以实用方式导入资源。在调用buildSessionFactory()的Configuration之前构建SessionFactory,使用正则表达式找出要暂停到的映射文件路径列表选择,然后使用addResource()或addClass()将其添加到Configuration对象。
或者,如果您将JPA与hibernate一起用作实现,则可以通过将属性hibernate.archive.autodetection
设置为hbm
来启用所有hbm.xml文件的自动发现(请参阅this)