运行没有"catalog"属性的hibernate工具注释生成

Tit*_*ore 7 java code-generation annotations hibernate

当我运行我的hibernate工具时,它从db读取并为每个表创建java类,并为复合主键创建java类.那很棒.

问题是这一行

@Table(name="tst_feature"
    ,catalog="tstdb"
)
Run Code Online (Sandbox Code Playgroud)

虽然表名是必需的,但不需要"catalog"属性.有时我想使用"tstdb",有时候我想使用"tstdev"

我认为选择哪个数据库取决于jdbc连接url但是当我将jdbc url更改为指向"tstdev"时,它仍然使用"tstdb"

所以,我知道必须做什么,只是不知道我的选择是如何完成的

  • 抑制"目录"属性的生成目前我正在手动执行此操作(效率不高)或者我可以编写一个程序来解析java文件并手动删除该属性但我希望我不必

要么

  • 找到一种方法告诉hibernate忽略"catalog"属性并使用明确指定的模式.我不知道我必须改变的确切设置,或者即使该选项可用.

小智 7

你需要遵循3个步骤 -

1)在hibernate.cfg.xml,添加此属性

hibernate.default_catalog = MyDatabaseName
Run Code Online (Sandbox Code Playgroud)

(如上文所述)

2)在hibernate.reveng.xml,添加所有表格过滤器,如下所示

table-filter match-name="MyTableName"
Run Code Online (Sandbox Code Playgroud)

(就在这里,这里没有目录名称)

3)重新生成hibernate代码

您不会在任何*.hbm.xml文件中看到任何目录名称.

我使用过Eclipse Galileo和Hibernate-3.2.4.GA.