实体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的管理。
实体的状态
新建状态:新建的实体对象,尚未拥有持久化主键,没有和一个持久化上下文关联起来。
托管状态:已经拥有持久化主键并和持久化上下文建立了联系。
游离状态:拥有持久化主键,但尚未和持久化上下文建立联系。
删除状态:拥有持久化主键,已经和持久化上下文建立联系,但已经被安排从数据库中删除。
参考: