首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> 桌面开发 >> 其他语言 >> 正文
EJB3 Persistence API标准化持久性
来源:ChinaItLab 作者:佚名 时间:2007-6-21



  默认情况下,定义在实体中的每个字段天然就是持久的;如果不希望保存字段/属性的状态,则必须将字段/属性定义为瞬态的,方法是使用@Transient注释或transient修饰符标记它。

  可嵌入对象

  可嵌入对象是不具有自己标识的持久对象;它是另一个实体的一部分。例如,我们可以假定Address没有自己的标识,且作为Employee实体的一部分存储。因此,Address是可嵌入对象的候选。

  可以如下所示创建可嵌入对象:

@Embeddable
public class Address {
protected String streetAddr1;
protected String streetAddr2;
protected String city;
protected String state;
..
}

  以下是将对象定义为目标实体中的可嵌入对象的方法:

@Entity
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
protected Long id;
...
@Embedded
protected Address address;
...
}

关系

  在一个典型的域模型中,实体是彼此关联的,或者它们相互之间存在着关系。两个实体之间的关系可以是一对一、一对多、多对一和多对多的。这些关系可以分别使用OneToOne、OneToMany、ManyToOne或ManyToMany注释表示。在我们的示例中,Department和Employee实体之间具有双向OneToMany关系。

  既然我们在实体中使用了基于字段的访问,我们就在Department实体的关系字段上指定注释,如下所示:

@OneToMany(mappedBy="department")
protected Collection<Employee> employees ;

  对于双向关系,必须在关系的另一方指定mappedBy元素(如上),方法是指向拥有此关系的字段或属性的名称。

  标准化O-R映射

  可以使用Java元数据注释或XML实现实体的O-R映射。EJB3 JPA定义了多种用于O-R映射的注释,例如Table、SecondaryTable、Column、JoinColumn和PrimaryKeyJoinColumn。请参阅EJB3 JPA规范,以获得关于所有注释的信息。

  在我们的示例中,可以使用Table注释定义实体被映射到的表,如下所示:

@Table(name="DEPT")
public class Department implements Serializable {


  EJB3 JPA严重依赖于默认设置,因此如果未定义表映射,则持久性提供程序会假定此实体被映射到与实体类同名的表(在我们的示例中是DEPARTMENT)。如果实体被映射到多个表,则可以使用SecondaryTable注释。

上一页  [1] [2] [3] [4] [5] [6] 下一页

【责编:Youping】
中国IT教育热线咨询
相关文章
没有相关文章
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·框架:J2EE WEB应用架构分析…03-13
·几种VC++数据库开发技术的相对比…03-13
·利用C#实现标注式消息提示窗口03-13
·用C#创建COM对象03-13
·Visual C#多线程参数传递浅析…03-13
·Visual C#多线程参数传递浅析…03-13
·基于HOOK和MMF的Win密码渗透技术11-15
·Visual C++设计超强仿QQ自动伸缩…11-15
·Java SE 6.0实现高质量桌面集成开…11-15
·史玉柱东山再起幕后高人11-15
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视…07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05