Liferay 自定义查询

第一步:在xxx.service.persistence里面新建BooksFinderImpl方法,继承自BasePersistenceImpl类。此处的命名必须是xxFinderImpl,前面的xx是Service.xml里面定义的实体名称。
第二步:执行service builder,此时会在service包的xxx.service.persistence下面生成BooksFinder的接口类和对应的BooksFinderUtil类。
第三步:让我们的BooksFinderImpl继承BooksFinder类。现在我们的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;   
}  
第五步:重新执行ServiceBuilder,现在会在BooksFinderUtil里面生成相应的接口,但是我们不能直接调用BooksFinderUtil方法,需要将我们的这个方法添加到BooksLocalServiceImpl里面。我们在BooksLocalServiceImpl里面添加相应的方法,在BooksLocalServiceImpl里面使用booksFinder.findBooks()进行调用。
第六步:再次执行ServiceBuilder,现在就可以通过BooksLocalServiceUtil类调用自定义的查询类了。

注:本文参考 [Liferay 6.1开发学习(十九):Liferay ServiceBuilder之自定义查询 | IT人生录]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,725评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,419评论 11 349
  • es6 的解构赋值 - 1.解构的理解就是:解析结构。也就是被解析一方和被赋值一方的形式要相同。
    人生不过尔尔阅读 247评论 0 0