6.7.3 带Key值的集合

如果使用了Map集合,可以同时配合注释@MapKey指定Map中存放的key值。例如以下代码中将AddressEO中的属性id作为key值保存在Map中。

@Entity

@Table(name = "customer")

public class CustomerEO implements java.io.Serializable {

         ……

         private Map<Integer,AddressEO> addresses = new HashMap<Integer,AddressEO>();

 

         @OneToMany(mappedBy="customer")

         @MapKey(name="id")

         public Map<Integer, AddressEO> getAddresses() {

                   return addresses;

         }

 

         public void setAddresses(Map<Integer, AddressEO> addresses) {

                   this.addresses = addresses;

         }

}

其中,注释@ MapKey定义如下所示。

@Target({METHOD, FIELD}) @Retention(RUNTIME)

public @interface MapKey {

String name() default "";

}

在使用@ MapKey注释事应注意以下几个问题。

l         @ MapKey用于标注Map中的key值。name的值指定Map类存放哪个实体的属性作为key值。

l         若不指定key值,默认为实体的主键作为key值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值