成人免费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-01 15:19:25

JPAHibenateSpring

2022-11-24 13:17:43

2009-06-25 16:18:45

JPA規范

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-09-28 09:35:10

Hibernate實現實體對象延遲加載

2009-06-01 15:44:18

2009-07-22 09:07:01

iBATIS.NET

2009-06-01 15:12:05

JPA是什么對象持久化ORM

2011-04-01 15:49:13

路由器鏈路

2022-03-07 15:22:16

classHarmony鴻蒙

2009-08-10 14:48:39

ASP.NET組件設計

2023-01-04 08:53:52

JPA實體類注解

2009-07-08 17:59:51

JDK JRE
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黑人精品xxx一区一二区 | 一区二区高清不卡 | 在线观看亚洲 | 黄色一级片视频 | 国产高清免费视频 | 91免费看片神器 | 亚洲精品大片 | 天堂在线91| 欧美一级片在线看 | 亚洲成人免费视频 | 中国美女一级黄色片 | 精品久久久一区 | 精品国产一区二区在线 | 日韩av在线一区 | 欧美国产激情二区三区 | 成人精品一区亚洲午夜久久久 | 日韩一区在线播放 | 欧美福利三区 | 成人免费视频在线观看 | 草在线| 国产欧美在线播放 | 爱草视频| 欧美成人视屏 | 午夜在线免费观看 | 91久久 | 精品久久国产老人久久综合 | 色综合久久久久 | 国产欧美精品区一区二区三区 | 免费黄色在线观看 | 国产精品久久久久久久久久久久久久 | 精品国产一区二区三区日日嗨 | 中文字幕乱码一区二区三区 | 国产精品视频一区二区三区不卡 | 久久精品视频12 | 亚洲一区二区三区视频 | 国产一区91精品张津瑜 | aa级毛片毛片免费观看久 | 国产在线观看一区二区 | 视频一区二区三区四区五区 | 黄免费在线 | aaa级片 |