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