但是在portlet中我们一般不直接使用xxUtil方法,所以要通过BooksLocalServiceUtil方法进行调用,需要再进行一层包装,找到xxx.service.impl里面的BooksLocalServiceImpl类,我们在里面添加一个方法名为getAllBooks,然后在这个方法里面写booksPersistence.findByUserId(userId,groupId)。写完之后重新执行ServiceBuilder。(具体体代码参看CURD-demo里面的)
步骤:
XXLocalServiceImpl中添加我们的方法 --》 运行serviceBulder --》 会在XXLocalServiceUtil中生成对应的方法 -- 》通过portlet进行调用
HQL:
1. 先在book.service.persistence里面新建BookFinderImpl类,继承自BasePersistenceImpl类。此处的命名必须是xxFinderImpl,前面的xx是Service.xml里面定义的实体名称。
2. 执行service builder,此时会在service包的book.service.persistence下面生成BookFinder的接口类和对应的BookFinderUtil类
3. 让我们的BookFinderImpl继承BookFinder类。现在我们的BookFinderImpl类如下。
public class BookFinderImpl extends BasePersistenceImpl<Book> implements BookFinder {
}
4. 在此类中编写我们的具体的查询方法
5. 重新执行ServiceBuilder,现在会在BookFinderUtil里面生成相应的接口,但是我们不能直接调用BookFinderUtil方法,需要将我们的这个方法添加到BookLocalServiceImpl里面。我们在BookLocalServiceImpl里面添加相应的方法,在BookLocalServiceImpl里面使用BookFinderUtil.findBooks()进行调用。
也就是说,经过前面几步,service builder已经为我们生成了对应的FinderUtil类,但是不能用,还要通过对应的LocalServiceImpl来调用。
6. 再次执行ServiceBuilder,现在就可以通过BookLocalServiceUtil类调用自定义的查询类了。