第一步:在xxx.service.persistence里面新建BooksFinderImpl方法割去,繼承自BasePersistenceImpl類。此處的命名必須是xxFinderImpl剖笙,前面的xx是Service.xml里面定義的實體名稱。
第二步:執(zhí)行service builder请唱,此時會在service包的xxx.service.persistence下面生成BooksFinder的接口類和對應(yīng)的BooksFinderUtil類枯途。
第三步:讓我們的BooksFinderImpl繼承BooksFinder類。現(xiàn)在我們的BooksFinderImpl類如下籍滴。
publicclassBooksFinderImplextendsBasePersistenceImplimplementsBooksFinder {
}
第四步:在此類中編寫我們的具體的查詢方法(只是簡單的示例代碼),如下
public List findBooks(long userId, String keywords, int start, int end) throws SystemException{
List list = null;
String sql = null;
sql = "SELECT book.bookId, book.bookNo,book.bookName FROM Books book where book.userId=? and book.bookName =?";
Session session = null;
try {
session = openSession();
Query q = session.createQuery(sql);
q.setLong(0, userId);
q.setString(1, keywords);
list = (List)QueryUtil.list(q, getDialect(),start, end, false);
}
catch (Exception e) {
throw processException(e);
}
finally {
closeSession(session);
}
return list;
}
第五步:重新執(zhí)行ServiceBuilder榴啸,現(xiàn)在會在BooksFinderUtil里面生成相應(yīng)的接口孽惰,但是我們不能直接調(diào)用BooksFinderUtil方法,需要將我們的這個方法添加到BooksLocalServiceImpl里面鸥印。我們在BooksLocalServiceImpl里面添加相應(yīng)的方法勋功,在BooksLocalServiceImpl里面使用booksFinder.findBooks()進(jìn)行調(diào)用。
第六步:再次執(zhí)行ServiceBuilder库说,現(xiàn)在就可以通過BooksLocalServiceUtil類調(diào)用自定義的查詢類了狂鞋。
注:本文參考 [Liferay 6.1開發(fā)學(xué)習(xí)(十九):Liferay ServiceBuilder之自定義查詢 | IT人生錄]