科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Hibernate项目中工具箱指南(5)

Hibernate项目中工具箱指南(5)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

15.3.1. 运行此工具

作者:中国IT实验室 来源:中国IT实验室 2007年8月21日

关键字: Hibernate

  • 评论
  • 分享微博
  • 分享邮件

15.3.1. 运行此工具

这个工具会把XML映射写入到标准输出或者/并且到一个文件中去。

在调用这个工具的时候,你必须把你编译过的类放到classpath中去。

java -cp hibernate_and_your_class_classpaths net.sf.hibernate.tool.class2hbm.MapGenerator options and classnames

有两种操作模式:命令行或者交互式。

    交互式模式当你使用一个惟一的命令行参数--interact的时候启动。这个模式提供一个命令控制台。你可以用uid=XXX命令设置每个类的UID属性的名字,XXX就是UID属性名。其他可用的命令就是类名的全限定名,或者“done”命令用来输出XML,并且结束。

    在命令行模式下,下面的参数选项和所需处理的类的全限定名可以相互间隔使用。大多数选项会使用多次,每个只影响其后出现的类。

表 15.7. MapGenerator命令行选项

选项 说明
--quiet 不把O-R 映射输出到stdout
--setUID=uid 设置备选UID名单
--addUID=uid 在备选UID名单前面增加一个新的uid
--select=mode 对后面的classes使用select选择的模式(mode)(比如, distinct 或者all)
--depth=<small-int> 限制后面的类的组件数据递归层数
--output=my_mapping.xml 把O-R 映射输出到一个文件
full.class.Name 把这个类加入到映射中
--abstract=full.class.Name 参见下面的说明

    abstract开关指定本工具忽略特定的超类,所以它的继承数上的类不会被映射到一个大表中去。比如,我们来看下面的类继承树:

Animal-->Mammal-->Human

Animal-->Mammal-->Marsupial-->Kangaroo

    如果不使用--abstract开关,Animal的所有子类都会被放到一个巨大的表中去,包含所有类的所有属性,还有一个用于分辨子类的字段。如果Mammal被标记成abstract,Human和Marsupial会被映射到不同的<class>声明,并且会有各自单独的表。Kangaroo仍然会被认为是Marsupial的子类,除非Marsupial也标记为anstract的。

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章