在WaveMaker 6.7外键查找



我目前正在为工作中的一个项目评估WaveMaker,并且在执行外键查找时遇到麻烦。我正在运行WaveMaker 6.7,并连接到Oracle数据库10g实例。

我的项目包括设计一个非常简单的"项目批准"屏幕。在WaveMaker的实现中,它应该由一个与RequestApproval表相关联的DojoGrid和一个与表中所选元素相关联的LiveForm组成,该元素提供对该元素的CRUD操作。

RequestApproval表中的每一行表示项目中的一个任务。该表包括一个可空的StaffAssigned列,该列指示将哪个工作人员分配给任务。为了验证新条目并保持数据完整性,StaffAssigned列是Respinit表的外键,该表的主键定义了所有人员。外键是在数据库中定义的,并且在导入时,WaveMaker将其分配为"到0或1"的基数(因为,我认为,StaffAssigned列是可空的)。

我的问题是,并不是所有的便利,WaveMaker应该提供给我,现在Hibernate有一个映射的关系是可用的。只要在StaffAssigned列上定义了该外键,该列就不会出现在DojoGrid中。Respinit表中的关联列在DojoGrid的"编辑列"对话框中也没有显示为可选择的。(也许这是因为WaveMaker不知道当StaffAssigned为空时要显示什么?)没有查找编辑器默认出现在LiveForm,但当我从调色板拖过来一个新的编辑器自动与外键相关联,并将自动填充从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的文档存档的链接,因为他们的网站已经关闭了一周。

相关内容

  • 没有找到相关文章

最新更新