实体Bean是可以存储在持久存储介质上的持久对象。实体Bean常用来表示永久性数据并提供操作这些数据的方法。一般情况下一个实体Bean对应着数据库中的一张表,而一个实体类的实例对应着这张表中的一条记录。
实体Bean和会话Bean的最大区别在于实体Bean具有持久性,允许共享访问和主键的特性。实体Bean的状态保存在数据库中,可以被多个客户程序共享,每个实体Bean都有一个成为主键的唯一对象标识。
1 package com.joyen.entity;
2
3 import java.io.Serializable;
4
5 import javax.persistence.Column;
6 import javax.persistence.Entity;
7 import javax.persistence.GeneratedValue;
8 import javax.persistence.GenerationType;
9 import javax.persistence.Id;
10 import javax.persistence.Table;
11
12 @Entity
13 @Table(name = "user")
14 public class User implements Serializable{
15
16 /**
17 *
18 */
19 private static final long serialVersionUID = -2219013548651496249L;
20 public int id;
21 public String name;
22 public String sex;
23
24 @Id
25 @GeneratedValue(strategy = GenerationType.IDENTITY)
26 @Column(name = "id", unique = true, nullable = false)
27 public int getId() {
28 return id;
29 }
30 public void setId(int id) {
31 this.id = id;
32 }
33 @Column(name = "name", nullable = true, length = 50)
34 public String getName() {
35 return name;
36 }
37 public void setName(String name) {
38 this.name = name;
39 }
40 @Column(name = "sex", nullable = true, length = 2)
41 public String getSex() {
42 return sex;
43 }
44 public void setSex(String sex) {
45 this.sex = sex;
46 }
47
48 }
持久化实体管理EntityManager
EntityManager 在Java persistence规范中,EntityManager是为所有持久化操作提供服务的中枢。
Persistence context 持久上下文是由一组受托管的实体对象实例所构成的集合,它受EntityManager的管理。
实体的状态
新建状态:新建的实体对象,尚未拥有持久化主键,没有和一个持久化上下文关联起来。
托管状态:已经拥有持久化主键并和持久化上下文建立了联系。
游离状态:拥有持久化主键,但尚未和持久化上下文建立联系。
删除状态:拥有持久化主键,已经和持久化上下文建立联系,但已经被安排从数据库中删除。
参考:
