Я хочу получить список сайтов в Liferay, тот же, что и в http://localhost:8080/group/control_panel/manage/-/сайты/сайты:
В SQL я бы запускал select * from Group_ WHERE site=1.
Как получить то же самое на Java?
У ГруппСервисУтил, похоже, нет такого метода.
Примечание. Мой код Java находится в модуле, работающем в Liferay, а не в портлете.




Вы можете использовать public List<Group> getGroups(long companyId, long parentGroupId, boolean site) из GroupLocalServiceUtil (https://docs.liferay.com/dxp/digital-enterprise/7.0-sp1/javadocs/portal-kernel/com/liferay/portal/kernel/service/GroupLocalServiceUtil.html#getGroups-long-long-boolean-). Его можно вызывать, когда вы не находитесь внутри портлета на основе OSGi. Если вы находитесь внутри компонента OSGi, вы можете внедрить GroupLocalService.
Если вас не волнует parentGroup, вместо этого вы можете использовать GroupConstants.ANY_PARENT_GROUP_ID в качестве parentGroupId.
Я только что увидел, что GroupServiceUtil также предлагает эту операцию получитьгруппы. Вы также можете вызвать его с помощью GroupConstants.ANY_PARENT_GROUP_ID и site=true.