使用EntityManager操作實體

2021-05-22 18:14:36 字數 2004 閱讀 2806

顧名思義,實體管理器entitymanager是負責管理entity的物件。對entity的操作包括新增、刪除、修改和查詢,都是通過實體管理器來實現的。

在ejb容器中,entitymanager的獲得可以通過標註,使用依賴注入來建立entitymanager例項,**如下所示。

@persistencecontext(unitname = "demo")

private entitymanager entitymanager;

@persistencecontex 表示標註的屬性entitymanager是乙個實體管理器entitymanager物件,ejb容器會根據unitname的值來初始化 entitymanager。其中unitname的值為上文中在persistence.xml中配置的中name的值。

雖然這裡沒有看到new實體管理器entitymanager的**,但一旦將該類放置到ejb容器中,容器將會自動依賴注入,初始化該例項。

entitymanager類中的persist方法可以在資料庫中新增一條記錄,其宣告如下所示。

public void persist(object entity)

示例**如下所示。

customereo customer = new customereo();

customer.setid(1);

customer.setname("sun system");

customer.setshortname("sun");

entitymanager.persist(customer);

entitymanager類中的find方法可以根據主鍵的值查詢對應的實體。

public t find(class entityclass, object primarykey);

其中,entityclass為實體物件,primarykey為主鍵的值。例如,查詢id為1的實體**如下所示。

customereo instance = entitymanager.find(customereo.class, new integer(1));

entitymanager類中的merge方法可以將實體更新到資料庫中,其宣告如下所示。

public t merge(t entity);

其中,entity為所要更新的實體物件,可以通過find方法先查詢出來,然後重新設定值後,最後更新。例如,更新id為1的實體**如下所示。

customereo customer = entitymanager.find(customereo.class, new integer(1));

customer.setname("new name");

customer.setshortname("new short name");

entitymanager.merge(customer);

entitymanager類中的remove方法可以刪除資料庫中的一條記錄,其宣告如下所示。

public void remove(object entity);

其中,entity為所要刪除的實體物件,可以通過find方法先查詢出來,然後刪除。例如,刪除id為1的實體**如下所示。

customereo customer = entitymanager.find(customereo.class, new integer(1));

entitymanager. remove (customer);

entitymanager類中的createquery方法可以查詢資料,並返回查詢結果集,其宣告如下所示。

public query createquery(string querystring);

其中,querystring為查詢的sql語句。例如,查詢所有的customereo可以使用以下**。

string sql = "select c from customereo c";

query query = entitymanager.createquery(sql);

list result  = query.getresultlist();

使用entityManager做分頁查詢

例子 apioperation pc端,根據條件查詢審批分頁資料 data apimodel description pc,審批回參 apimodelproperty 審批uuid private string uuid apimodelproperty 客戶名 private string cus...

EntityManager常用API簡單備忘

1 find getreference 獲得實體,類似getbyid。2 persist 將資料儲存到資料庫中,傳遞的引數必須是實體bean,類似insert。3 當實體正在被容器管理時,你可以呼叫實體的set方法對資料進行修改,在容器決定flush時 這個由container自行判斷 更新的資料才...

entityManager 的常用方法(一)

理解eneitymanager的這三個方法的作用和區別,首先需要分清楚persistencecontext 和 entitymanager.persistencecontext 是entity的乙個例項。entitymanager 是和persistencecontext聯絡在一起的,被用來建立 刪...