次のデータベーススキーマがあります。
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のマッピングに固執しました。これをマッピングする際の助けをいただければ幸いです。