2017-04-26 73 views
2

我有一個與Liferay Service Builder相關的問題。我想在創建的Join表中創建與自定義列的多對多關係。Liferay Service Builder與自定義列的多對多關係

這是我的service.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.2.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_2_0.dtd"> 
<service-builder package-path="de.mycompany.mm.services"> 
    <author>rawdog</author> 
    <namespace>mycompany</namespace> 

    <entity name="Registration" local-service="true" remote-service="false"> 
     <column name="RegID" type="long" primary="true"></column> 
     <column name="Email" type="String"></column> 
     <column name="Hash" type="String"></column> 
     <column name="Validate" type="boolean"></column> 
     <column name="NewsletterID" type="Collection" entity="Newsletter" mapping-table="Registration_Newsletter"/> 
     <finder name="Hash" return-type="Registration"> 
      <finder-column name="Hash"></finder-column> 
     </finder> 
    </entity> 

    <entity name="Newsletter" local-service="true" remote-service="false"> 
     <column name="NewsletterID" type="long" primary="true"></column> 
     <column name="Name" type="String"></column> 
     <column name="Status" type="boolean"></column> 
     <column name="RegID" type="Collection" entity="Registration" mapping-table="Registration_Newsletter"/> 
    </entity> 
</service-builder> 

這將自動創建下面的SQL CREATE語句:

create table mycompany_Registration_Newsletter (
    RegID LONG not null, 
    NewsletterID LONG not null, 
    primary key (ANID, MMID) 
); 

我怎麼可能還自動創建在JOIN表自定義colums像狀態布爾 。它應該看起來像這樣到底:

create table mycompany_Registration_Newsletter (
    RegID LONG not null, 
    NewsletterID LONG not null, 
    Status BOOLEAN, 
    primary key (ANID, MMID) 
); 

感謝您的任何幫助。

回答

0

有兩種方法來解決這個問題:

  1. 您可以通過添加您的布爾列手動修改連接表(在數據庫上執行sql腳本:ALTER TABLE yourJoinedTable ADD yourBooleanColumn BOOLEAN NOT NULL;),然後定義自定義SQL /本地查詢IN SERVICE BUILDER使用這個連接表。
  2. (如果您希望Service Builder以其他表格的形式處理此連接表)將其定義爲您的service.xml中的實體,以便您可以在定義2 OneToMany關係後輕鬆使用它「右側「和」左側「(假設ManyToMany =」等於「= oneToMany左側& & ManyToOne右側)。