【问题标题】:Hibernate/JPA mapping a map <entity, basic> using annotationsHibernate/JPA 使用注解映射映射 <entity, basic>
【发布时间】:2014-08-12 07:56:00
【问题描述】:

我对 Hibernate 很陌生,我不知道我是否在这方面采取了正确的方法,我尝试用谷歌搜索这个问题,但我只成功获得了 和基于 xml 的映射。

这是我的餐桌设置:

我试图在父实体(table1)中有一个地图集合,它有一个实体键和一个基本字符串值Map&lt;Table2, String&gt; table2Propertymapping,其中String 值是连接表中枚举属性字段的值@ 987654324@,键是连接表中拥有table2_idtable2外键的相应table2实体。

我在table1实体中试过这个注解

@ElementCollection
@MapKeyJoinColumn(name = "table2_idtable2")
@Column(name = "property")
@CollectionTable(name = "table2_has_table1", joinColumns = @JoinColumn(name = "table1_idtable1", nullable = false, updatable = false))
Map<Table2, String> table2Propertymapping;

这成功地填充了地图但它在提取期间从连接表中删除了一些值

注意:在我的真实数据库中,连接表中的外键与父主键同名,所以例如table2_idtable2被称为idtable2我不知道这可能会对映射产生什么影响。

那么使用连接表获取实体并将它们与连接表中的该属性进行映射的正确方法是什么?谢谢

【问题讨论】:

    标签: hibernate jpa hibernate-annotations


    【解决方案1】:

    找到了解决方案,问题出在我原始数据库中表之间关系的声明中,它允许连接表中存在空值。在确保所有外键与上图相同(由mysql工作台生成)后,上述映射才有效

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 2012-09-05
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多