•
property
元素用于指定类的属性和表的字段的映射
–
name
:
指定该持久化类的属性的名字
–
column
:
指定与类的属性映射的表的字段名
.
如果没有设置该属性
, Hibernate
将直接使用类的属性名作为字段名
.
–
type
:
指定
Hibernate
映射类型
. Hibernate
映射类型是
Java
类型与
SQL
类型的桥梁
.
如果没有为某个属性显式设定映射类型
, Hibernate
会运用反射机制先识别出持久化类的特定属性的
Java
类型
,
然后自动使用与之对应的默认的
Hibernate
映射类型
.
–
not-null
:
若该属性值为
true,
表明不允许为
null,
默认为
false
–
access
:
指定
Hibernate
的默认的属性访问策略。
默认值为
property,
即使用
getter, setter
方法来访问属性
.
若指定
field,
则
Hibernate
会忽略
getter/setter
方法
,
而通过反射访问成员
变量
–
unique
:
设置是否为该属性所映射的数据列添加唯一约束
.
–
index
:
指定一个字符串的索引名称
.
当系统需要
Hibernate
自动建表时
,
用于为该属性所映射的数据列创建索引
,
从而加快该数据列的查询
.
–
length
:
指定该属性所映射数据列的字段的长度
–
scale
:
指定该属性所映射数据列的小数位数
,
对
double, float, decimal
等类型的数据列有效
.
–
formula
:设置一个
SQL
表达式
, Hibernate
将根据它来计算出派生属性的值
.
–
派生属性
:
并不是持久化类的所有属性都直接和表的字段匹配
,
持久化类的有些属性的值必须在运行时通过计算才能得出来
,
这种属性称为派生属性
•
使用
formula
属性时
–
formula=“(
sql
)”
的英文括号不能少
–
Sql
表达式中的列名和表名都应该和数据库对应
,
而不是和持久化对象的属性对应
–
如果需要在
formula
属性中使用参数
,
这直接使用
where cur.id=id
形式
,
其中
id
就是参数
,
和当前持久化对象的
id
属性对应的列的
id
值将作为参数传入
.
•