我有下一个数据库架构:
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的映射。任何有关映射的帮助将不胜感激。
答案 0 :(得分:1)
请勿使用地图,请使用列表。如果要查找Map样式,请在从数据库中获取列表后使用查询或构建临时映射。另外,@ annotations会让你的生活更轻松吗?