成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JPA的實體狀態和API淺析

開發 后端
本文分析JPA中的實體狀態的4個狀態及相關API的使用。

實體對象擁有以下4個狀態,這些狀態通過調用EntityManager接口方法發生遷移:

新建態:新創建的實體對象,尚未擁有持久化主鍵,沒有和一個持久化上下文關聯起來。受控態:已經擁有持久化主鍵并和持久化上下文建立了聯系; 游離態:擁有持久化主鍵,但尚未和持久化上下文建立聯系; 刪除態:擁有持久化主鍵,已經和持久化上下文建立聯系,但已經被安排從數據庫中刪除。

EntityManager 的API

下面是EntityManager的一些主要的接口方法:

void persist(Object entity)

通過調用EntityManager的persist()方法,新實體實例將轉換為受控狀態。這意謂著當persist ()方法所在的事務提交時,實體的數據將保存到數據庫中。如果實體已經被持久化,那么調用persist()操作不會發生任何事情。如果對一個已經刪除的 實體調用persist()操作,刪除態的實體又轉變為受控態。如果對游離狀的實體執行persist()操作,將拋出 IllegalArgumentException。

在一個實體上調用persist()操作,將廣播到和實體關聯的實體上,執行相應的級聯持久化操作;

void remove(Object entity)

通過調用remove()方法刪除一個受控的實體。如果實體聲明為級聯刪除(cascade=REMOVE 或者cascade=ALL ),被關聯的實體也會被刪除。在一個新建狀態的實體上調用remove()操作,將被忽略。如果在游離實體上調用remove()操作,將拋出 IllegalArgumentException,相關的事務將回滾。如果在已經刪除的實體上執行remove()操作,也會被忽略;

void flush()

將受控態的實體數據同步到數據庫中;

T merge(T entity)

將一個游離態的實體持久化到數據庫中,并轉換為受控態的實體;

T find(Class entityClass, Object primaryKey)

以主鍵查詢實體對象,entityClass是實體的類,primaryKey是主鍵值,如以下的代碼查詢Topic實體:

Topic t = em.find(Topic.class,1);

Query createQuery(String qlString)

根據JPA的查詢語句創建一個查詢對象Query,如下面的代碼:

Query q= em.createQuery(""SELECT t FROM Topic t
WHERE t.topicTitle LIKE :topicTitle")");
Query createNativeQuery(String sqlString)

使用本地數據庫的SQL語句創建一個Query對象,Query通過getResultList()方法執行查詢后,返回一個List結果集,每一行數據對應一個Vector。

Query

JPA使用javax.persistence.Query接口代表一個查詢實例,Query實例由EntityManager通過指定查詢語句構建。該接口擁有眾多執行數據查詢的接口方法:

Object getSingleResult():執行SELECT查詢語句,并返回一個結果;

List getResultList() :執行SELECT查詢語句,并返回多個結果;

Query setParameter(int position, Object value):通過參數位置號綁定查詢語句中的參數,如果查詢語句使用了命令參數,則可以使用Query setParameter(String name, Object value)方法綁定命名參數;

Query setMaxResults(int maxResult):設置返回的最大結果數;

int executeUpdate():如果查詢語句是新增、刪除或更改的語句,通過該方法執行更新操作。

您正在閱讀:JPA的實體狀態和API淺析

【編輯推薦】

  1. Java Persistence API (JPA) 的陷阱
  2. 持久化規范JPA(JavapersistenceAPI)
  3. 9.3 從特定的API到混搭
責任編輯:張攀 來源: 百度空間
相關推薦

2009-06-25 16:18:45

JPA規范

2009-06-01 15:19:25

JPAHibenateSpring

2022-11-24 13:17:43

2009-11-12 15:00:03

ADO.NET實體數據

2009-06-01 14:54:50

jpaapiJava

2009-06-25 16:07:30

JPAJava EE

2009-07-08 10:02:41

Servlet 3.0

2009-09-10 10:09:46

LINQ to SQL

2018-01-04 15:50:44

深度學習自然語言機器學習

2009-07-22 15:21:00

iBATIS SQLM

2009-09-18 13:28:41

Mobile Sens

2009-07-22 09:07:01

iBATIS.NET

2009-09-28 09:35:10

Hibernate實現實體對象延遲加載

2009-06-01 15:12:05

JPA是什么對象持久化ORM

2009-06-01 15:44:18

2022-03-07 15:22:16

classHarmony鴻蒙

2011-04-01 15:49:13

路由器鏈路

2009-08-10 14:48:39

ASP.NET組件設計

2009-07-08 17:59:51

JDK JRE

2023-01-04 08:53:52

JPA實體類注解
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.玖玖玖| 精品一区国产 | 九九热这里只有精品在线观看 | 在线电影日韩 | 国产欧美二区 | 狠狠干天天干 | 在线看av的网址 | 99精品国产一区二区三区 | av在线成人 | 国产在线观看一区二区三区 | 国产精品免费观看 | 成人教育av | 一区二区三区欧美在线 | 日本一区二区三区在线观看 | 欧美不卡视频一区发布 | 午夜网址 | 亚洲欧美精| 国产亚洲精品久久久久动 | 国产精品一区二区三区在线播放 | 国产精品一区二区三区四区五区 | 日本字幕在线观看 | 欧美自拍一区 | 国产成人精品综合 | 青青草网站在线观看 | 久久综合香蕉 | av片网| 国产一级毛片精品完整视频版 | 日韩精品三区 | 久久久久一区二区 | 国产精品视频在线观看 | 日韩精品影院 | 欧美在线国产精品 | 精品在线观看入口 | 日韩精品一区二区三区四区 | 精品国产一区二区在线 | 亚洲大片一区 | 手机看片169 | 日本不卡高字幕在线2019 | 毛片av免费在线观看 | 成人欧美一区二区三区 | 日韩在线电影 |