0

我正在使用 Liferay-6,我是它的初学者。

我的要求是,我有一个名为Players的表,其列为ID,我需要Name从中Category检索基于Category从 Front-end 中选择的所有 Player-names。

我知道我需要为此使用 Liferay ServiceBuilder,所以我的问题是在创建service.xml文件时我需要为此使用查找器方法还是无需它就可以管理?

请指定,提前谢谢。

4

2 回答 2

1

您不需要使用 finder-methods,但如果您无论如何都在使用,那么ServiceBuilder我看不出没有利用 finder-methods 的任何意义。只需在以下内容中写几行service.xml

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

但是,如果您根本不使用service.xml,那么您当然不能使用查找器方法,您必须手动完成所有操作。

但是,如果您正在使用service.xml或打算使用service.xml,那么请务必使用 finder-methods,因为它可以为您节省一天的工作。

于 2013-02-20T10:12:08.110 回答
0

既然您决心使用 Service Builder,我同意 Finders 是最好的方法

  1. service.xml 中的每个 Finder 都会让您访问 playerLocalPersistence.findby.. 方法,tat 将返回一个玩家集合
  2. 如果您想检索其他内容(例如 List playerNames),您可以在 PlayersLocalServiceImpl 中编写一个方法,在函数体内使用上述 finder 函数,并返回您的自定义 Collection,可从 PlayersLocalServiceUtil 访问
  3. 无论如何都会创建 findByPrimary fider。例如,如果“ID”设置为主键,则无需为该属性添加 Finder

实际上,您需要编写自定义查询,仅当您要搜索超过 1 个实体时(换句话说,FROM 查询部分使用多个数据库表)。在其他所有情况下,service.xml 中的 Finder 节点都是可行的方法

于 2013-02-20T14:19:26.910 回答