映射复合类型的属性
有时候 实体属性的类型不是基本数据类型,也不是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 ,方法
?
?
}
?
}
?
?
?