Liferay,ServiceBuilder,属性userId,companyId,userId的范围是什么

时间:2013-02-27 15:04:12

标签: liferay-6 liferay-ide

虽然我已经使用Liferay ServiceBuilder开发了一些服务,但我不太清楚我是否理解使用这些属性的重点:

  1. 用户id
  2. companyId
  3. 的groupId 请注意,这些属性可通过PortalRequest获得。
  4. 遵循基本tutorials,您被指示为每个实体创建这些属性,并注意在“添加”功能上设置它们。但考虑到这一点,我从未见过任何教程或引用的代码,其中这些属性用于数据检索(Finder方法,动态查询或自定义查询)

    那么保留这些信息有什么意义呢?

    1. 这些属性是否在某种约定或范围内以某种方式自动使用?有点像,Liferay的默认Finders在通过PortalRequest可用时使用它们吗?

    2. 或者由开发人员在每个Select上使用它们,例如。所有单参数Finders在多实例门户上几乎没用(因为companyId属性应该用在每个Finder方法上)?

    3. 或者,为了数据库的可扩展性,审计,索引或其他我完全遗漏的东西,这是一个很好的做法吗?

2 个答案:

答案 0 :(得分:1)

当您在暂存环境中使用实体时,这些属性是必需的。 groupId指定实体所属的环境。 userId的含义是显而易见的,对于companyId,它是站点标识符。所以恕我直言,当你有一个门户网站上有多个网站时,这些属性非常重要。启用等..

答案 1 :(得分:0)

假设您有一个新表,并且您想在表中设置UserId,那么这是必要的,但我不认为这些属性是必要的。 我创建了服务构建器

<entity name="FaoEsalesCustomer" local-service="true" remote-service="false" table="fao_esalecustomer">
    <!-- PK fields -->
    <column name="esaleCustomerId" type="long" primary="true" />
    <!-- Audit fields -->
    <column name="createdBy" type="long" />
    <column name="createdOn" type="Date" />
    <column name="modifiedBy" type="long" />
    <column name="modifiedOn" type="Date" />        
    <!-- Other fields -->
    <column name="customerName" type="String" />
    <column name="address" type="String" />
    <column name="ph" type="Integer" />
    <column name="categoryId" type="long" />
    <column name="categoryName" type="String" />
    <column name="quantity" type="Double" />
    <column name="price" type="Double" />
</entity>