我正在注释我的DAO,并使用hibernate3:hbm2ddl生成ddls。有没有办法注释表空间?
不,没有开箱即用的方法。过去,我使用以下方法(相当复杂)解决了这个问题:
@TableSpec
org.hibernate.cfg.Configuration
getTableMappings()
Table
org.hibernate.mapping.Table
sqlCreateString()
sqlAlterStrings()
Configuration
Configuration.generateSchemaCreationScript()
generateSchemaUpdateScript()
就像我说的那样,这是相当麻烦的:-)作为替代,如果所有映射表都使用相同的表空间,则可以扩展正在使用的Oracle方言,并重写getTableTypeString()以返回表空间规范。尽管这是一个丑陋的破解(因为tableTypeString的最初目的是提供MySQL引擎类型),但它确实有效,并且比上述方法更快,更容易。
getTableTypeString()