實體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的管理。
實體的狀態
新建狀態:新建的實體對象,尚未擁有持久化主鍵,沒有和一個持久化上下文關聯起來。
托管狀態:已經擁有持久化主鍵並和持久化上下文建立了聯系。
游離狀態:擁有持久化主鍵,但尚未和持久化上下文建立聯系。
刪除狀態:擁有持久化主鍵,已經和持久化上下文建立聯系,但已經被安排從數據庫中刪除。
參考: