簡體   English   中英

WaveMaker 6.7中的外鍵查找

[英]Foreign Key Lookup in WaveMaker 6.7

我目前正在為工作中的項目評估WaveMaker,並且在執行外鍵查找時遇到麻煩。 我正在運行WaveMaker 6.7並連接到Oracle Database 10g實例。

我的項目涉及設計一個非常簡單的“項目批准”屏幕。 在WaveMaker的實現中,它應該由與RequestApproval表關聯的DojoGrid和與表中所選元素關聯的LiveForm組成,以對該元素提供CRUD操作。

RequestApproval表中的每一行代表一個項目中的任務。 該表包括可空的StaffAssigned列,該列指示將哪個工作人員分配給任務。 為了驗證新條目並保持數據完整性,StaffAssigned列是Respinit表的外鍵,該表的主鍵定義了所有工作人員。 外鍵在數據庫中定義,並且在導入時,WaveMaker為其分配基數為“零或一”(因為我認為StaffAssigned列為可空)。

我的問題是,由於Hibernate具有對關系的映射,WaveMaker現在不應該為我提供所有便利。 只要在StaffAssigned列上定義了該外鍵,該列就不會出現在DojoGrid中。 Respinit表中的任何關聯列都不會在DojoGrid的“編輯列”對話框中顯示為可選。 (也許這是因為StaffAssigned為null時WaveMaker不知道要顯示什么?)默認情況下,LiveForm中沒有出現Lookup編輯器,但是當我從Pallete拖動一個時,新的編輯器會自動與外鍵關聯,並且會當我運行我的應用程序時,將自動使用Respinit表中的值進行填充。

這是Hibernate中RequestApproval表的定義:

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.db105ddb.data.RequestApproval" table="REQUEST_APPROVAL" schema="VRT" dynamic-insert="false" dynamic-update="false">
        <id name="requestApprovalId" type="integer">
            <column name="REQUEST_APPROVAL_ID" precision="9"/>
            <generator class="assigned"/>
        </id>
        <property name="REQUESTNUM" type="integer">
            <column name="REQUESTNUM" precision="8" not-null="true"/>
        </property>
        <property name="taskDescription" type="string">
            <column name="TASK_DESCRIPTION" length="2000"/>
        </property>
        <property name="whoRequestedApproval" type="string">
            <column name="WHO_REQUESTED_APPROVAL" length="6"/>
        </property>
        <property name="dateRequested" type="date">
            <column name="DATE_REQUESTED" length="7"/>
        </property>
        <property name="dateApproved" type="date">
            <column name="DATE_APPROVED" length="7"/>
        </property>
        <property name="WHO_APPROVED" type="string">
            <column name="WHO_APPROVED" length="6"/>
        </property>
        <many-to-one name="respinitByStaffAssigned" class="com.db105ddb.data.Respinit" cascade="none">
            <column name="STAFF_ASSIGNED" length="6"/>
        </many-to-one>
    </class>
</hibernate-mapping>

這是Respinit表的定義:

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.db105ddb.data.Respinit" table="RESPINIT" schema="VRT" dynamic-insert="false" dynamic-update="false">
        <id name="respinit" type="string">
            <column name="RESPINIT" length="6"/>
            <generator class="assigned"/>
        </id>
        <property name="rname" type="string">
            <column name="RNAME" length="40"/>
        </property>
        <property name="rnameaddr" type="string">
            <column name="RNAMEADDR" length="40"/>
        </property>
        <property name="raddr1" type="string">
            <column name="RADDR1" length="40"/>
        </property>
        <property name="raddr2" type="string">
            <column name="RADDR2" length="40"/>
        </property>
        <property name="rcity" type="string">
            <column name="RCITY" length="40"/>
        </property>
        <property name="rstate" type="string">
            <column name="RSTATE" length="20"/>
        </property>
        <property name="rzip" type="string">
            <column name="RZIP" length="20"/>
        </property>
        <property name="homephone" type="string">
            <column name="HOMEPHONE" length="20"/>
        </property>
        <property name="extension" type="string">
            <column name="EXTENSION" length="5"/>
        </property>
        <property name="department" type="string">
            <column name="DEPARTMENT" length="20"/>
        </property>
        <property name="cgroup" type="string">
            <column name="CGROUP" length="10"/>
        </property>
        <property name="emailaddress" type="string">
            <column name="EMAILADDRESS" length="1024"/>
        </property>
        <set name="requestApprovalsForStaffAssigned" inverse="true" cascade="">
            <key>
                <column name="STAFF_ASSIGNED" length="6"/>
            </key>
            <one-to-many class="com.db105ddb.data.RequestApproval"/>
        </set>
    </class>
</hibernate-mapping>

我真的希望我的StaffAssigned列顯示在我的DojoGrid中,但我不確定為什么沒有。 我對Wavemaker所做的其他外鍵查找按預期工作。 誰能說出我在配置中做錯了什么嗎? 我的方法在某種程度上是非標准的嗎? 任何幫助將不勝感激,我將很樂意根據要求提供任何其他信息。

我發現答案藏在他們的文檔中。 如果需要查看/編輯相關數據,則必須使用LiveView而不是LiveTable。 這是指向 Wayback Machine的相關文檔存檔的鏈接 ,因為他們的網站已經關閉了整整一周。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM