Java 持久化规范允许你插入非实体的Java对象在实体组件中并且映射的嵌入对象属性值到实本表中的栏位.这些对象没有任何标识并且被包含的实体组件类所专有.@EmbeddedId主键的规则非常的简单如同前面的例子.我们首先定义一个内部对象:
package com.titan.domain;
import javax.persistence.*;
@Embeddable
public class Address implements java.io.Serializable {
private String street;
private String city;
private String state;
public String getStreet( ) { return street; }
public void setStreet(String street) { this.street = street; }
public String getCity( ) { return city; }
public void setCity(String city) { this.city = city; }
public String getState( ) { return state; }
public void setState(String state) { this.state = state; }
}
内部的Address类有@Column映射定义在里面.其次,使用@javax.persistence.Embedded注释在Customer组件类内的嵌入实例Address,类:
package javax.persistence;
public @interface Embedded {}
同样的@EmbeddedId,@Embedded注释能够被联合同@AttributeOverrides注释一同使用如果你想覆盖指定嵌入类的信息.下面的例子显示如果覆盖.如果你不想覆.省去@AttributeOverrides注释.
package com.titan.domain;
import javax.persistence.*;
@Entity
@Table(name="CUSTOMER_TABLE")
public class Customer implements java.io.Serializable {
private long id;
private String firstName;
private String lastName;
private Address address;
...
@Embedded
@AttributeOverrides({
@AttributeOverride
(name="street",
column=@Column(name="CUST_STREET")),
@AttributeOverride(name="city", column=@Column(name="CUST_CITY")),
@AttributeOverride(name="state", column=@Column(name="CUST_STATE"))
})
public Address getAddress( ) {
return address;
}
...
}
在本例中,我们映射Address类属性到Customer_table表中的栏位.如果你不想指定@Embedded注释和Address类是序列化的,那么持久化提供者假定它是@Lob类型与序列化的字节流到Customer_table 表中的栏位.
看一下XML映射文件:
<entity-mappings>
<embeddable class="com.titan.domain.Address" access-type="PROPERTY"/>
<entity class="com.titan.domain.Customer" access="PROPERTY">
<attributes>
<id name="id"/>
<embedded name="address">
<attribute-override name="street">
<column name="CUST_STREET"/>
</attribute-override>
<attribute-override name="city">
<column name="CUST_CITY"/>
</attribute-override>
<attribute-override name="state">
<column name="CUST_STATE"/>
</attribute-override>
</embedded>
</attributes>
</entity>
</entity-mappings>
这个看起来非常准确的<embedded-id>映射,除了映射一个指定的属性使用<embedded>元素,其它的都相同.
简而言之,都是关于基本的属性映射.在下一章中,我们将讨论怎样映射复杂的关在多个实体组件之间.
我的联系方式:
QQ:495585885
Email:liuyuhui_007@yahoo.com.cn
我的博客:http://hi.baidu.com/vsandjava
下载地址:
主页公布邮箱或
http://lyh007.gbaopan.com/files/2d0f192dbab34ded90da94796b21d4ec.gbp
分享到:
相关推荐
ejb3中文版
EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)
EJB API中文版,很详细的ejb api的中文版本,就像是jdk api一样
ejb3.0 中文版教程
ejb3部分章节中文版,对学习ejb3有很大帮助
《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第...
( [Head.First.EJB(中文版)].(美).西勒,.(美).贝茨.扫描版
《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第...
EJB3.0(中文版)
EJB3核心规范 EJB3持久化规范(简体中文版) MS1_1规范(简体中文版)
本教程适合具有Java 语言基础的EJB 初学者。有读者来邮件问需不需要先学EJB2.0,作者明确地告诉你不用 学了。随着EJB3 的发展,EJB2 将会逐步成为历史。
EJB3的三本好书第二本,最好的介绍ejb3的书,看过之后,其他的书都送人了,而且附带的源代码,几乎包括了所有的主流应用服务器的例子,glassfish, jboss, weblogic, oracleAS 3本书分别是: 1. Beginning EJB3 ...
ejb3.0中文版 ejb3.0中文版 ejb3.0中文版
EJB3的三本好书之三,也很不错的一本ejb3的书籍,是英文版,附带源代码,这本书的好处是与Mastering EJB 3ed有一定的继承性,可以对比来看. 3本书的地址 1. Beginning EJB3 Application Development From Novice to ...
Head First 系列丛书之 Head First EJB(中文版),pdf版,高清版。
本书是阐述ejb2.1的相关知识,最令人兴奋的就是ejb的规范
Expert One-on-One J2EE Development Without EJB中文版.pdf.7z.001 (共3个)
Mastering+EJB3 EJB3+IN+ACTION Beginning+EJB3+Application+Development
EJB3开发指南英文版《EJB.3.Developer.Guide》 出版商:PacketPublishing 出版日期:2008年5月 页数:276 简介: 第一章:EJB3体系结构简介 ...第十一章:实现EJB3的WebSerivce 第十二章:EJB3安全