Liferay 使用service.xml文件中的Finder方法从表中检索数据是否具有管理意义

Liferay 使用service.xml文件中的Finder方法从表中检索数据是否具有管理意义,liferay,liferay-6,Liferay,Liferay 6,我正在使用Liferay-6,我是一个初学者 我的要求是,我有一个名为Players的表,其中列为ID、Name和Category,我需要根据从前端选择的Category检索所有玩家姓名 我知道我需要使用Liferay的ServiceBuilder来实现这一点,所以我的问题是,在创建service.xml文件时,我需要使用finder方法来实现这一点,还是不用它就可以管理 请提前说明,谢谢。您不需要使用finder方法,但如果您使用的是ServiceBuilder,我看不出有任何不利用finde

我正在使用Liferay-6,我是一个初学者

我的要求是,我有一个名为Players的表,其中列为
ID
Name
Category
,我需要根据从前端选择的
Category
检索所有玩家姓名

我知道我需要使用Liferay的
ServiceBuilder
来实现这一点,所以我的问题是,在创建
service.xml
文件时,我需要使用finder方法来实现这一点,还是不用它就可以管理


请提前说明,谢谢。

您不需要使用finder方法,但如果您使用的是
ServiceBuilder
,我看不出有任何不利用finder方法的地方。只需在
service.xml
中写几行,如下所示:

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

但是,如果您根本不使用
service.xml
,当然就不能使用finder方法,您必须手动完成所有操作


但是,如果您正在使用
service.xml
或计划使用
service.xml
,那么请务必使用finder方法,因为这将节省您一天的工作。

既然您决定使用service Builder,我同意finder是最好的方法

  • service.xml中的每个查找器都将允许您访问PlayerLocalPersistence.findby。。方法,tat将返回一个玩家集合
  • 如果要检索其他内容(例如列表playerNames),可以在PlayerLocalServiceImpl中编写一个方法,在函数体中使用上述finder函数,并返回自定义集合,可从PlayerLocalServiceUtil访问
  • 无论如何都会创建findByPrimary fider。e、 g如果将“ID”设置为主键,则不必为该属性添加查找器
  • 实际上,只有当您希望搜索多个实体时(换句话说,FROM查询部分使用多个数据库表),才需要编写自定义查询。在其他任何情况下,service.xml中的Finder节点都是一个不错的选择

    Hi Preethi,您不需要使用Liferay ServiceBuilder,但这样做会节省大量时间。