端口映射:映射属性@AttributeOverride

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

}

}

Tags:  端口映射工具 路由器端口映射 映射网络驱动器 端口映射

延伸阅读

最新评论

发表评论