问题描述
当我运行我的休眠工具
它从数据库中读取并为每个表创建Java类,
和复合主键的Java类。
这是伟大的。
when i run my hibernate toolsit reads from the db and create java classes for each tables,and a java class for composite primary keys.that's great.
问题是这一行
@Table(name="tst_feature"
,catalog="tstdb"
)
而需要的表名称,则不需要目录属性。
有时我想用tstdb,有时我想用tstdev
while the table name is required, the "catalog" attribute is not required.sometimes i want to use "tstdb", sometimes i want to use "tstdev"
我认为是选择何种数据库依赖于JDBC连接URL
但是,当我改变JDBC URL指向tstdev,它依然使用tstdb
i thought which db was chosen depends on the jdbc connection urlbut when i change the jdbc url to point to "tstdev", it is still using "tstdb"
那么,
我知道必须做什么,
只是不知道它是怎么做的
我的选择是
so,i know what must be done,just don't know how its is donemy options are
- 燮preSS目录属性的生成
目前我手动做这个(不太高)
或者我可以写一个分析Java文件的程序,并手动删除该属性
但我希望我不必
或
- 找到一个方法来告诉Hibernate忽略目录属性和使用显式指定的模式。
我不知道确切的设置,我必须要改变才达到这一点,或者即使该选项可用。
推荐答案
您需要按照3个步骤 -
You need to follow 3 steps -
1)在hibernate.cfg.xml文件中,添加该属性。
1) In the hibernate.cfg.xml, add this property
hibernate.default_catalog = MyDatabaseName
(如上述交指定)
hibernate.default_catalog = MyDatabaseName(as specified in above post)
2)在hibernate.reveng.xml中,添加所有表滤波器这样
2) In the hibernate.reveng.xml, add all the table filters like this
表过滤器匹配名称=MyTableName
(仅此,没有目录姓名)
table-filter match-name="MyTableName"(just this, no catalog name here)
3)重新生成hibernate的code
3) Regenerate hibernate code
您不会看到任何的*的.hbm.xml文件中的任何目录名称。
You will not see any catalog name in any of the *.hbm.xml files.
我已经使用Eclipse的伽利略和Hibernate-3.2.4.GA。
I have used Eclipse Galileo and Hibernate-3.2.4.GA.
这篇关于目录"不&QUOT运行休眠工具注释生成;属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!