2013-02-27 57 views
0

範圍雖然我已經與Liferay的ServiceBuilder開發了一些服務,我不太知道我理解中的屬性點:Liferay的,ServiceBuilder,什麼是對屬性的用戶id,companyId,用戶id

  1. 用戶id
  2. companyId
  3. groupId 請注意,這些屬性可通過PortalRequest獲得。

繼基本的tutorials之後,您將被指示爲每個實體創建這些屬性,並且注意將它們設置爲「添加」功能。但考慮到這一點,我從未見過任何教程或引用的代碼,這些屬性用於數據檢索(Finder方法,動態查詢或自定義查詢)

那麼,保留這些信息有什麼意義呢?

  1. 這些屬性在某種約定或範圍下自動以某種方式自動使用嗎?就像Liferay默認的Finder在通過PortalRequest可用時使用它們一樣?或者是由開發人員在每個選擇中使用它們,例如,所有單參數查找器在多實例門戶中幾乎沒有用(因爲應該在每個Finder方法上使用companyId屬性)?

  2. 或者,這只是一個很好的做法,以保持這個數據庫可擴展性,審計,索引或其他我完全失蹤的結構?

回答

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> 
+0

我知道,我已經建立實體有和沒有這些屬性。作爲一種很好的做法,我將它們視爲「保留」屬性名稱,在「添加」函數中添加適當的值,並且在我想將實體與用戶關聯的情況下,我將使用另一個屬性'用戶名')。我沒有建立服務的問題,這只是我想知道爲什麼我(和教程)包含這些屬性而不真正使用它們。 – yannicuLar 2013-02-27 16:03:56

1

當您使用實體例如在臨時環境,這些屬性是必要的。 groupId指定實體所屬的環境。 userId的含義是顯而易見的,至於companyId,它是網站標識符。所以恕我直言這些屬性是非常重要的,當你在一個門戶上有多個站點時,當你有登臺環境。啓用等。

+0

我同意,userId通常很適合任何類型的應用程序,而companyId和groupId僅在使用多個站點組織等時有用 – yannicuLar 2015-01-09 11:56:42