0

我有一个相当简单的(我认为)要映射的类:

<class name="parent" table="PARENT_TABLE">
    <composite-id>
        <key-property name = "a" column = "A"/>
        <key-property name = "b" column = "B"/>
        <key-property name = "c" column = "C"/>
    </composite-id>
    <map name = "theMap" table = "PARENT_TABLE" where="type='access'">
        <key foreign-key = "PARENT_TABLE_FK">
            <column name = "A"/>
            <column name = "B"/>
            <column name = "C"/>
        </key>
        <map-key column = "X" type = "double"/>
        <element column = "Y" type = "double" not-null="true"/>
    </map>
</class>

在 hibernate 的一个表中映射多个集合where="type='access'"得到了诀窍,但问题是使用映射,外键 (A,B,C,X) 没有与父表 (A,B,C )。

有谁知道如何让这个快乐?如果我必须单独映射地图,则 PARENT_TABLE 将是完全多余的。

4

1 回答 1

0

它并不漂亮,也使 Schemaexport 无用,但要使其工作,您需要指定 where 条件以使父级唯一,将插入/更新设置为 false 并让映射间接保留父级。

<class name="parent" table="PARENT_TABLE" where="x = (SELECT x FROM PARENT_TABLE p WHERE p.(a,b,c) = a,b,c LIMIT 1)" insert="false" update="false">
于 2012-08-14T19:54:01.123 回答