注册
 找回密码
 注册
江西广告网
查看: 353|回复: 0
打印 上一主题 下一主题

映射属性|AttributeOverride

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-23 11:47:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
@AttributeOverrides由多个@AttributeOverride注释组成,每个@AttributeOverride表示属性的映射,它的定义如以下所示: @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface AttributeOverride { String name(); Column column(); } 在使用@AttributeOverride注释应注意以下几方面的问题: l name属性表示嵌入式类中的属性名称。 l column属性表示,所嵌入的实体类中的列定义,其中@Column标记表示的意义请读者参阅5.2.2小节。 l 例如将tb_customer表中的customer_zip字段映射为Address中的属性zip。代码如下所示: @AttributeOverride(name = "zip", column = @Column(name = "customer_zip") ) l 使用嵌入式类的好处是:多个实体中都可以共享一个嵌入式类,方便了对实体的操作。例如现在ContactEO也嵌入Address类,就很方便的映射为以下所示: public class CustomerEO implements Serializable { private Integer id; private String name; private String nickname; ……getter和setter方法省略 private Address address; @Embedded @AttributeOverrides( { @AttributeOverride(name = "zip", column = @Column(name = "contact_zip")), @AttributeOverride(name = "line1", column = @Column(name = "contact_line1")), }) public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表