当前位置: 首页 > 面试题库 >

Hibernate Oracle表空间注释

公羊曜灿
2023-03-14
问题内容

我正在注释我的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()以返回表空间规范。尽管这是一个丑陋的破解(因为tableTypeString的最初目的是提供MySQL引擎类型),但它确实有效,并且比上述方法更快,更容易。



 类似资料:
  • 我有一个ASCII表,我想把它放到可以放置输入而不影响空格的位置 我知道这和上下文没有关系,但是如果我随便取一个名字,比如约翰。这是输出 忽略第二个示例中的System.out.println()s,它只是为了设置结构。我的问题是我如何获得|与其余部分对齐,并且名称不编辑空格(如果有意义) 谢谢

  • InnoDB 通用表空间是一个共享表空间,可以容纳多个表,并支持所有表行格式。InnoDB 撤消表空间包含撤消日志。在 MySQL NDB Cluster 中,表空间可以包含一个或多个数据文件,从而为 NDB Cluster Disk Data 表提供存储空间。在主窗口中,点击 “其他”->“表空间”来打开表空间的对象列表。 表空间设计器 “表空间设计器”是一个用于设计表空间的 Navicat 基

  • InnoDB 通用表空间是一个共享表空间,可以容纳多个表,并支持所有表行格式。InnoDB 撤消表空间包含撤消日志。在 MySQL NDB Cluster 中,表空间可以包含一个或多个数据文件,从而为 NDB Cluster Disk Data 表提供存储空间。在主窗口中,点击 “其他”-> “表空间”来打开表空间的对象列表。 表空间设计器 “表空间设计器”是一个用于设计表空间的 Navicat

  • InnoDB 通用表空间是一个共享表空间,可以容纳多个表,并支持所有表行格式。InnoDB 撤消表空间包含撤消日志。在 MySQL NDB Cluster 中,表空间可以包含一个或多个数据文件,从而为 NDB Cluster Disk Data 表提供存储空间。在主窗口中,点击 “其他”->“表空间”来打开表空间的对象列表。 表空间设计器 “表空间设计器”是一个用于设计表空间的 Navicat 基

  • 主要内容:数据库中表空间的优点,容器,默认表空间DB2表空间是一种存储结构,包含表,索引,大对象和长数据。 它可用于将数据库中的数据组织到逻辑存储组中,该逻辑存储组与存储在系统上的数据相关。 表空间存储在数据库分区组中。 数据库中表空间的优点 表空间提供了以下几个优势: 可恢复性:表空间使备份和恢复操作更加方便。 使用单个命令,可以备份或还原表空间中的所有数据库对象。 自动存储管理:数据库管理器根据需要创建和扩展容器。 内存利用率:单个缓冲池可

  • 本文向大家介绍MySQL的表空间是什么,包括了MySQL的表空间是什么的使用技巧和注意事项,需要的朋友参考一下 今天我要跟你分享的话题是:“大家常说的表空间到底是什么?究竟什么又是数据表?” 这其实是一个概念性的知识点,当作拓展知识。涉及到的概念大家了解一下就好,涉及的参数,留个印象就好。 一、什么是表? 但凡是用过MySQL都知道,直观上看,MySQL的数据都存在数据表中。 比如一条Update