Hibernate学习笔记(二)hbm2java和hbm2ddl
刘俊语
2023-12-01
hbm2java:根据映射文件自动生成Java源文件
hbm2ddl:根据映射文件自动生成数据库Schema
XDoclet:根据带有XDoclet标记的Java源文件生成映射文件。
Middlegen:根据数据库Schema自动生成,下载网址为:http://sourceforge.net/projects/middlegen
<meta>:用来精粒度控制Java源代码内容
使用ant codegen会按XML生成JAVA类
class-description 指定描述类的JavaDoc,位于类名的上面,写在类中不起作用
field-description 指定描述类的属性的JavaDoc,位于get方法上面,
写在类定义的位置(class-description),声称在类名下放
Interface 如果为true,表示生成接口,而非类。默认为false
Implements 指定类所实现的接口
Extends 指定类继承的父类名
generated-class 重新指定生成的包名.类名 例:<meta attribute="generated-class">mypack.User</meta>
scope-class 指定类的修饰符,默认为public
scope-set 指定set方法的修饰符,默认为public
scope-get 指定set方法的修饰符,默认为public
scope-field 指定类的属性方法的修饰符,默认为public
use-in-tostring 如果为true,表示在toString()方法中包含此属性
gen-property 如果为false,不会在Java类中生成此属性,默认为true
作用范围:如果在<hibernate-mapping>下面就使用者全部被作用,使用<meta attribute="*" inherit="false">
则只作用于下面第一个。另外一种方法是放到<class>元素里面
<column>:数据库表的定义
使用ant工具运行ant run,会依次执行build.xml文件中的prepare,codegen,compile,schema和run target
name 设定字段的名字
length 设定字段的长度
not-null 如果为true,指明该字段不允许为null。默认为false
unique 如果为true,指明该字段具有唯一性约束。默认为false
index 给一个或多个字段建立索引
unique-key 为多个字段设定唯一约束
foreign-key 为外键约束命名,在<many-to-one>,<one-to-one>,<key>和<many-to-many>元素中包含该属性。
如果没有设定此属性,hbm2ddl工具会自动为外间约束随机生成唯一的名字。在双向关联中,
inverse属性为true的一段不能设置foreign-key属性
sql-type 设定字段的SQL类型
check 设定SQL检查约束