是否可以在service.xml文件中使用Finder方法从表中检索数据

时间:2013-02-19 20:05:37

标签: liferay liferay-6

我正在使用Liferay-6,而且我是初学者。

我的要求是,我有一个名为玩家的表,其中列为IDNameCategory,我需要从中检索所有播放器 - 基于从前端选择的Category的名称。

我知道我需要使用Liferay的ServiceBuilder,所以我的问题是在创建service.xml文件时我是否需要使用finder方法,否则我可以管理它?

请提前表示谢谢。

2 个答案:

答案 0 :(得分:1)

您不需要使用finder-methods,但如果您使用ServiceBuilder,我认为没有任何一点不利用finder-methods。这只是在service.xml这样的事情中写下几行的问题:

<finder name="Category" return-type="Collection">
    <finder-column name="category" case-sensitive="false" />
</finder>

但如果你完全没有使用service.xml而不是使用{cn},你就不能使用finder方法而且必须手动完成所有操作。

但如果你正在使用service.xml或计划使用service.xml,那么一定要使用finder-methods,因为它可以节省你一天的工作。

答案 1 :(得分:0)

由于您决定使用服务构建器,我同意Finders是最好的方法

  1. service.xml中的每个Finder,都会给你访问一个playerLocalPersistence.findby ..方法,tat会返回一个玩家集合
  2. 如果你想要检索别的东西(比如List playerNames),你可以在PlayersLocalServiceImpl中编写一个方法,在函数体内使用上面的finder函数,并返回你的自定义Collection,可以从PlayersLocalServiceUtil访问
  3. 无论如何都会创建findByPrimary fider。例如,如果将“ID”设置为主键,则不需要为该属性添加Finder
  4. 实际上,只有当您要搜索多个实体(换句话说,FROM查询部分,使用多个数据库表)时,才需要编写自定义查询。在所有其他情况下,service.xml中的Finder节点是可行的方式