频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Java持久化API(JPA)开发中如何使用实体

来源: 作者:IT168 胡磊 出处:巧巧读书 2007-11-11 进入讨论组
上一页 1 2 3 4 5 下一页 

二、字段和属性
 
任何一个实体的状态都是由它的字段值或者属性值所定义的。当进行检索或者存储的实体的时候,你能决定 Java持久化AP是否使用你的变量字段或者 getters 和 setters 方法。如果你声明了那些事例变量,持久化方案提供工具(persistence provider)将直接访问事例变量。如果你声明为 JavaBean风格的 getter 和setter方法,持久化方案提供工具将会在加载或者存储这些持久化状态时使用getter 和setter方法。你应该选择其中一种风格,目前的规范中,混合使用者这两种风格是不合法的。目前的持久化规范给我们演示了一些例子,这些例子中使用的是getters 和 setters 方法,因此这篇文章将沿用这个约定。
你可以使用大多数的基本类型作为你的持久化字段,包括基本类型,基本类型包装,字符串和许多其它的类型。你应该查一下该API规范,看看它所允许的字段类型。
所有的实体必须要有一个主键。主键是单独唯一的字段或者多字段组合标识。本文使用的单个字段主键,当然更具需要,你可以将多个字段作为你的主键。标识单个字段主键用 Id声明。
主键字段必须是下面类型中的一种:
     基本类型(如 int、long等)
     基本类型的包装(如nteger、 Long等)
     java.lang.String
java.util.Date
java.sql.Date
下面的代码事例定义了 Player类。这个例子演示了你如何使用四种不同的声明:Entity,Id, GeneratedValue 和Transient。
@Entity public class Player implements Serializable { private Long id; private String lastName; private String firstName; private int jerseyNumber; private String lastSpokenWords; /** Creates a new instance of Player */ public Player() { } /** * Gets the id of this Player. The persistence provider should * autogenerate a unique id for new player objects. * @return the id */ @Id @GeneratedValue public Long getId() { return this.id; } /** * Sets the id of this Player to the specified value. * @param id the new id */ public void setId(Long id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String name) { lastName = name; } // ... // some code excluded for brevity // ... /** * Returns the last words spoken by this player. * We don't want to persist that! */ @Transient public String getLastSpokenWords() { return lastSpokenWords; } public void setLastSpokenWords(String lastWords) { lastSpokenWords = lastWords; } // ... // some code excluded for brevity // ... }
实体的主键是 id属性,并且该属性正确的被 Id声明。主键得值可以自动生成。自动生成id的行为还没有完全被指定,但是如果你增加对主键的 GeneratedValue声明的话,就会自动产生一个键。

@Id @GeneratedValue public Long getId() {
通常是明确的标识属性和字段,而不应该把它们设置为持久化的。使用声明 Transient来标识过渡( transient)属性。你也可以使用语言关键字 transient来标识字段。属性和字段被 Transient所声明后,将不会是在数据库中持久化存储。上面的 Player代码事例中,你会注意到 lastSpokenWords属性使用了Transient声明。字段被Java语言关键字所标识的话,将不会被串行化或者持久化。字段或者属性以 Transient标识将不会在数据库中持久化。
来自:http://www.qqread.com/java/2007/11/w381044.html 更多文章 更多内容请看Java环境安装配置Java编程开发手册Wlan组网----家庭专题专题,或进入讨论组讨论。
上一页 1 2 3 4 5 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章