1

我有下一个数据库模式:

CREATE TABLE A (id INTEGER);
CREATE TABLE Single_Values (fk_a INTEGER, fk_b INTEGER, value VARCHAR(255));
CREATE TABLE List_Values (fk_a INTEGER, fk_b INTEGER, value VARCHAR(255));
CREATE TABLE B (id INTEGER, name VARCHAR(255));

我有下一个对象模型(示意图):

class B{
    Integer id;
    String name;
}

class SingleValue extends B{
    String value;
}

class ListValues extends B{
    List<String> values;
}

class A{
    Integer id;
    Map<Integer, SingleValue> singleMap;
    Map<Integer, ListValues> listMap;
}

接下来我做了一个到单值映射的映射:

<class name="B">
   <id name="id"/>
   <property name="name"/>
   <joined-subclass name="SingleValue">
       <key column="fk_b"/>
       <property name="value"/>
   </joined-subclass>
</class>
<class name="A">
    <id name="id"/>
    <map name="singleMap" table="Single_Values">
        <key column="fk_a"/>
        <map-key column="fk_b"/>
        <one-to-many class="B"/>
    </map>
</class>

我坚持使用 listMap 的映射。任何有关映射的帮助将不胜感激。

4

1 回答 1

1

不要使用地图,使用列表。如果要查找地图样式,请在从数据库中获取列表后使用查询或构建临时地图。另外,@annotations 会让你的生活更轻松吗?

于 2011-05-02T01:40:54.617 回答