参考:
http://docs.jboss.org/hibernate/annotations/3.4/reference/zh_cn/html_single/
1、系统配置:
可以通过使用 mapping的 resource,于class
属性混合配置
<mapping resource="com/rhythmk/model/product.hbm.xml" />
<mapping class="com.rhythmk.model.User"></mapping>
在创建SessionFactory 也可以通过代码完成映射关联:
?
1 2 3 4 5 |
|
2、实体:
》每一个持久化POJO类都是一个实体bean,这可以通过在类的定义中使用@Entity
》hibernate的访问类型分别为 field或property.
EJ3规范要求在需要访问的元素上进行注解声明,例如,如果访问类型为 property就要在getter方法上进行注解声明, 如果访问类型为 field就要在字段上进行注解声明.应该尽量避免混合使用这两种访问类型
》实体bean中所有的非static非transient的属性都可以被持久化,
除非你将其注解为@Transient.
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
?
1 2 3 4 5 6 7 8 9 10 11 |
|
3、映射继承关系:
- 每个类一张表(Table per class)策略: 在Hibernate中对应<union-class>元素:
- 每个类层次结构一张表(Single table per class
hierarchy)策略:在Hibernate中对应<subclass>元素 - ?
1
2
3
4
5
6
7
8
9
10
11
12
@Entity
@Inheritance
(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn
(
name=
"planetype"
,
discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue
(
"Plane"
)
public
class
Plane { ... }
@Entity
@DiscriminatorValue
(
"A320"
)
public
class
A320
extends
Plane { ... }
- 连接的子类(Joined subclasses)策略:在Hibernate中对应 <joined-subclass>元素
?
1 2 3 4 5 6 7 8 9 10 |
|
Rhythmk 学习 Hibernate 07 - Hibernate annotation 实体注解,布布扣,bubuko.com