Hibernate中Criteria的使用

2021-06-26 19:56:21 字數 1384 閱讀 4184

如若篩選條件是多個實體類的字段組成的,則可以使用createalias關聯相關的實體類,進行查詢。

例如:

@suppresswarnings("unchecked")

public paginationquerylist(productdto productdto, page page)

if(productdto.getdeploystatus() != null && productdto.getdeploystatus().length != 0)

//關聯document

if(stringutils.isnotblank(productdto.getstarttime())) catch (parseexception e)

}if(stringutils.isnotblank(productdto.getendtime())) catch (parseexception e)

}//關聯customer

if(stringutils.isnotblank(productdto.getcustomername()))

} if(page != null)

//分頁

criteria.setmaxresults(page.getsize());

criteria.setfirstresult(page.getindex()*page.getsize());

} criteria = criteria.addorder(order.desc("p.createtime"));

paginationquerypaginationquery = new paginationquery<>();

paginationquery.setplist(criteria.list());

paginationquery.setpage(page);

return paginationquery;

}

如若篩選條件就是乙個實體類的字段,而查詢的字段是多個實體類的字段,則可用setfetchmode進行查詢。

例如:

@suppresswarnings("unchecked")

public customer getbyname(string name)

criteria.add(restrictions.eq("enable", true));

criteria.setfetchmode("strategies", fetchmode.select);

listcustomers = criteria.list();

if (customers != null && customers.size() > 0)

return null;

}

hibernate中generator屬性的意義

1 identity 用於mysql資料庫。特點 遞增 注 對於mysql資料庫使用遞增序列時需要在建表時對主鍵指定為auto increment屬性。2 sequence 用於oracle資料庫 序列名3 native 跨資料庫時使用,由底層方言產生。default.sequence為hibern...

hibernate中取得connection的方法

在hibernate3中,使用了c3p0連線池,嘗試了多種辦法取得connection物件,以下兩種可以使用。connection conn 方法1 hibernate4中將要廢棄這個方法 conn session.connection 方法2 這個方法也可以用,速度稍慢 sessionfactor...

Hibernate中的快取技術

根據我學習的框架的經驗,在shh整合框架中,hibernate是最難學習的了。hibernate中有許多要點,還得掌握一下啊,像懶載入lazy 級聯cascade 事物控制 還有快取和二級快取哦。首先我們先來了解一下快取 所謂快取就是介於應用程式和物理資料來源之間的資料。能夠降低應用程式對物理資料訪...