有时候 实体属性的类型不是基本数据类型,也不是string ,java,util,Date等简单类型,而是用户定义的复合类型
当实体内包含复合类型的属性时,我们用 @Embedded 修饰这个复合类型的属性 用 @AttributeOverride来指定
复合类型中成员属性的映射配置
如,一个复合类型是cat ,cat 包含name 属性 需要使用@AttributeOverride 指定cat的name属性的映射配置
name 指定符合类型中的哪个属性进行配置
column 指定关于该属性的详细映射信息
@Column(name="email")
private String emal; //以上都一样
@Embedded
@AttributeOverrides({
@AttributeOverride(name="name",
column=@Column(name="cat_name",length=30)),
@AttributeOverride(name="color",
column=@Column(name="cat_color"))
})
private Cat cat; //后面一样有 set ,get 方法
除此以外,我们要用 @Embeddable 来修饰Cat 类 ,不使用也没问题
@Embeddable
public class Cat{
private String name;
private String color;
public cat(){}
public cat(String name,String color){
this.name=name;
this.color=color;
///省略get set ,方法
}
}