十一、组件映射

1    对象关系:一个对象是另外一个对象的一部分
2    数据库表:一张表
3    annotation: @ Embeddable @Embbeded
       对象模型
Husband(id,name,wife)
Wife(name,age)
Annotation:
在Husband的wife属性上建立注解
@Embedded 表明该对象是从别的位置嵌入过来的,是不需要单独映射的表.
这种方式生成的表为husband(id,name,wifename,wifeage),不会生成wife表.

@AttributeOverride注解需要写在getWife方法上,可以重新指定生成的Wife类组件生成的字段名,
例如:Husband与Wife两个类中都有name字段,这样在生成表的时候会有冲突,
此时采用@AttributeOverride注解可以指定Wife类中的name属性对应新的字段名—“wifename”,
不过@AttributeOverride注解不常用,因为有更好的解决方法.
1:不要在组件的两个映射类中写同名属性;
2:如果真的有重复,那么可以在分类中(此处为Wife类)的重复名称的属性上使用如下内容以指定新的字段名:
@Column(name="wifename")
    public String getName() {
        return name;
    }

另外,@ Embeddable注解好像是写在分类(Wife类)的类名前的,不过好像不写也行
@Embeddable
public class Wife {… …}

你可能感兴趣的:(组件)