Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1997007
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:17:17

@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;

……gettersetter方法省略

         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;

         }

}

【责编:Ken】

--------------------next---------------------

阅读(430) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~