java - Hibernate映射异构继承对象的映射

标签 java hibernate orm multimap

我有下一个数据库架构:

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 的映射。任何有关映射的帮助将不胜感激。

最佳答案

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

关于java - Hibernate映射异构继承对象的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5771423/

相关文章:

java - 无法在Windows 10上安装java

java - 按日期升序排序,最后为空

mysql - 为什么我不能在 jpa 中定义一个名为 "index"的列?

c# - 哪一款性能更好?

java - 多对多 Spring Boot JPA 未填充 ManyToMany 表

java while 循环没有中断

java - 变量可能尚未初始化...如何增加范围?

java - Hibernate/MySQL 批量插入问题

java - 如何实现多个线程安全的读/写锁(ConcurrentHashmap)

java - 具有聚合内连接的 JPA Criteria 查询