使用Liferay API创建组织

时间:2012-12-13 08:50:34

标签: liferay

以下哪个util适用于使用Liferay API创建组织。

i)OrganizationUtil
ii)OrganizationServiceUtil
iii)OrganizationLocalServiceUtil

基本上,我想知道这三者之间的区别。

1 个答案:

答案 0 :(得分:4)

  

i)OrganizationUtil:com.liferay.portal.service.persistence.OrganizationUtil

持久层中的类直接与数据库通信,因此很好地从服务层使用,如果你关心事务也是如此。

以下是documentation

中的字词
  

组织服务的持久性实用程序。此实用程序包装OrganizationPersistenceImpl并为CRUD操作提供对数据库的直接访问。此实用程序只应由服务层使用,因为它必须在事务中运行。永远不要在JSP,控制器,模型或其他前端类中访问此实用程序。


  

ii)OrganizationServiceUtil:com.liferay.portal.service.OrganizationServiceUtil

可以从任何层调用它。此类还执行权限检查(基于Liferay中给出的权限),这在某些情况下可能很有用。这也可以通过网络服务使用。

好吧,让我们看看liferay的documentation所说的话:

  

组织远程服务的实用程序。此实用程序包装com.liferay.portal.service.impl.OrganizationServiceImpl,并且是在远程服务器上运行的应用程序层代码中的服务操作的主要访问点。

     

这是一项远程服务。此服务的方法应根据传播的JAAS凭据进行安全检查,因为可以远程访问此服务。


  

iii)OrganizationLocalServiceUtil:com.liferay.portal.service.OrganizationLocalServiceUtil

如果您不想要任何权限检查,也可以使用它。 OrganizationServiceUtil最终会调用localService图层。

Liferay的Documentation

  

组织本地服务的实用程序。此实用程序包装com.liferay.portal.service.impl.OrganizationLocalServiceImpl,并且是在本地服务器上运行的应用程序层代码中的服务操作的主要访问点。

     

这是本地服务。此服务的方法不会基于传播的JAAS凭据进行安全检查,因为只能从同一VM中访问此服务。

结论

  1. 如果您关心事务,请使用OrganizationUtil,即必须更新事务中的多个表,然后使用它。
  2. 如果您在liferay之外创建组织,或者您需要权限检查,则使用OrganizationServiceUtil。您不关心交易(即使用您的自定义代码进行交易)
  3. 如果您没有使用网络服务,并且不关心交易或权限,请使用OrganizationLocalServiceUtil。
  4. 希望这会给你一个公平的想法。如果还不清楚,请告诉我。