映射复合类型的属性

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

 

 

}

 

}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值