0

虽然我已经使用 Liferay ServiceBuilder 开发了一些服务,但我不太确定我是否理解使用属性的意义:

  1. 用户身份
  2. 公司编号
  3. groupId 请注意,这些属性可通过 PortalRequest 获得。

按照基本教程,您将被指示为每个实体创建这些属性,并注意在“添加”功能上设置它们。但是考虑到这一点,我从未见过任何教程或参考代码将这些属性用于数据检索(Finder 方法、动态查询或自定义查询)

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

  1. 这些属性是否在某种约定或范围内以某种方式自动使用?比如,Liferay 的默认查找器在通过 PortalRequest 可用时使用它们?

  2. 还是由开发人员在每个 Select 上使用它们,例如,所有单参数查找器在多实例门户上实际上是无用的(因为应该在每个查找器方法上使用 companyId 属性)?

  3. 或者,为了数据库可扩展性、审计、索引或其他我完全缺少的东西而保留这种结构只是一个好习惯?

4

2 回答 2

1

当您在登台环境中使用实体时,这些属性是必需的。groupId 指定实体所属的环境。userId 的含义很明显,对于 companyId 它是站点标识符。因此,恕我直言,当您在一个门户上有多个站点时,当您有登台环境时,这些属性非常重要。启用等。

于 2015-01-09T09:17:33.680 回答
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>
于 2013-02-27T15:23:32.933 回答