顧名思義,實體管理器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聯絡在一起的,被用來建立 刪...