gpt4 book ai didi

java - Hibernate Oracle 表空间注解

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:50 26 4
gpt4 key购买 nike

我正在注释我的 DAO 并使用 hibernate3:hbm2ddl 生成 ddls。有没有办法注释表空间?

最佳答案

不,没有办法开箱即用。我过去使用以下 - 相当复杂 - 方法解决了这个问题:

  1. 创建您自己的注释,@TableSpec,它具有表空间和其他必要的属性。
  2. 扩展 org.hibernate.cfg.Configuration 并覆盖 getTableMappings() 以返回修饰的 Table 对象(见下文)。
  3. 扩展 org.hibernate.mapping.Table 并覆盖 sqlCreateString() 和/或 sqlAlterStrings() 以附加表空间规范(以及额外的设置(如果有)。
  4. 不使用 hbm2ddl 工具(或 ant 任务)编写您自己的工具来创建您的 Configuration 对象,处理您所有的类文件,收集和解释您的 @TableSpec 注释和调用 Configuration.generateSchemaCreationScript()generateSchemaUpdateScript() 生成实际的 DDL。

正如我所说,相当复杂 :-) 作为替代方案,如果您的所有映射表都使用相同的表空间,您可以扩展您正在使用的 Oracle 方言并覆盖 getTableTypeString() 以返回您的表空间规范虽然这是一个丑陋的 hack(因为 tableTypeString 的最初目的是提供 MySQL 引擎类型),但它确实有效,而且肯定比上述方法更快更容易。

关于java - Hibernate Oracle 表空间注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com