扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年8月21日
关键字: Hibernate
你可以在你的Ant build脚本中调用SchemaExport:
<target name="schemaexport"> <taskdef name="schemaexport" classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="class.path"/> <schemaexport properties="hibernate.properties" quiet="no" text="no" drop="no" delimiter=";" output="schema-export.sql"> <fileset dir="src"> <include name="**/*.hbm.xml"/> </fileset> </schemaexport> </target>
SchemaUpdate工具对已存在的schema采用"增量"方式进行更新。注意SchemaUpdate严重依赖于JDBC metadata API,所以它并非对所有JDBC驱动都有效。
java -cp hibernate_classpaths net.sf.hibernate.tool.hbm2ddl.SchemaUpdate options mapping_files
表 15.4. SchemaUpdate命令行选项
选项 | 说明 |
---|---|
--quiet | 不要把脚本输出到stdout |
--properties=hibernate.properties | 从指定文件读入数据库属性 |
你可以在你的应用程序中嵌入SchemaUpdate工具:
Configuration cfg = ....; new SchemaUpdate(cfg).execute(false);
你可以在Ant脚本中调用SchemaUpdate:
<target name="schemaupdate"> <taskdef name="schemaupdate" classname="net.sf.hibernate.tool.hbm2ddl.SchemaUpdateTask" classpathref="class.path"/> <schemaupdate properties="hibernate.properties" quiet="no"> <fileset dir="src"> <include name="**/*.hbm.xml"/> </fileset> </schemaupdate> </target>
Hibernate代码生成器可以用来为Hibernate映射文件生成Java实现类的骨架。这个工具在Hibernate Extensions发行包中提供(需要单独下载)。
hbm2java解析映射文件,生成可工作的Java源代码文件。使用hbm2java,你可以“只”提供.hbm文件,不用担心要去手工编写Java文件。
java -cp hibernate_classpaths net.sf.hibernate.tool.hbm2java.CodeGenerator options mapping_files
表 15.5. 代码生成器命令行选项
选项 | 说明 |
---|---|
--output=output_dir | 生成代码输出的根目录 |
--config=config_file | 可选的hvm2java配置文件 |
配置文件提供了配置生成源代码的多个"渲染器(renders)"的途径,也可以声明在全局范围生效的<meta>属性。详情请参见<meta>属性的部分。
<codegen> <meta attribute="implements">codegen.test.IAuditable</meta> <generate renderer="net.sf.hibernate.tool.hbm2java.BasicRenderer"/> <generate package="autofinders.only" suffix="Finder" renderer="net.sf.hibernate.tool.hbm2java.FinderRenderer"/> </codegen>
这个配置文件声明了一个全局的meta(元)属性“implements”,指定了两个渲染器,默认渲染器(BadicRender)和生成Finder(参见下面的“基本Finder 生成器”)的渲染器。
定义第二个渲染器需要一个包名和后缀属性。
包名属性指定生成后的源代码应该保存的位置,覆盖在.hbm文件中指定的包范围。
后缀属性指定生成的文件的后缀。比如说,如果有一个Foo.java文件,应该变成FooFinder.java。
也可以通过在<generate>元素上增加<param>属性来传递特别的参数到渲染器去。
hbm2java目前支持一个这样的参数,名字是generate-concrete-empty-classes来通知BasicRender对你所有的类都只生成空的具体类来继承它们。下列config.xml演示了这个功能
<codegen> <generate prefix="Base" renderer="net.sf.hibernate.tool.hbm2java.BasicRenderer"/> <generate renderer="net.sf.hibernate.tool.hbm2java.BasicRenderer"> <param name="generate-concrete-empty-classes">true</param> <param name="baseclass-prefix">Base</param> </generate> </codegen>
注意,这个config.xml定义了两个渲染器。一个生成Base类,第二个只生成空的具体类。
查看本文来源如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者