2017-07-14 114 views
1

在Liferay中我有如下一個實體:Liferay的服務構建表自動遞增在每個部署

<entity name="Foo" local-service="true" remote-service="true"> 

     <!-- PK fields --> 

     <column name="fooId" type="long" primary="true" /> 

     <!-- Group instance --> 

     <column name="groupId" type="long" /> 

     <!-- Audit fields --> 

     <column name="companyId" type="long" /> 
     <column name="userId" type="long" /> 
     <column name="userName" type="String" /> 
     <column name="createDate" type="Date" /> 
     <column name="modifiedDate" type="Date" /> 

     <!-- Other fields --> 

     <column name="field1" type="String" /> 
     <column name="field2" type="boolean" /> 
     <column name="field3" type="int" /> 
     <column name="field4" type="Date" /> 
     <column name="field5" type="String" /> 

     <!-- Order --> 

     <order by="asc"> 
      <order-column name="field1" /> 
     </order> 

     <!-- Finder methods --> 

     <finder name="Field2" return-type="Collection"> 
      <finder-column name="field2" /> 
     </finder> 
    </entity> 

當我改變portlet的代碼。在每次部署時,其主鍵增加100. 因此無論如何只能將其自動增量設置爲1。而且每次部署時不得增加100。

回答

4

選項#1

在您的主鍵列添加此id-type="increment"

<column name="fooId" type="long" primary="true" id-type="increment" /> 

缺點: 這將打破集羣環境

選項#2

在portal-ext.properties添加此

# 
# Set the number of increments between database updates to the Counter 
# table. Set this value to a higher number for better performance. 
# 
counter.increment=1 //by default it is 100 

缺點:這會影響你的表現。

+0

謝謝@Parth,如果兩者都有缺點。那哪個更好? –

+0

@VarunArya取決於你的情況先生!如果你沒有聚集env去選項1,否則我wouldnt要改變爲1 ..我看不出問題,如果主鍵是101,201,301 –

+1

同意評論:選擇選項3:一個ID只是一個ID。除了身份證明之外,別假設別的。繼續,還有更重要的問題要解決 –