Hibernate创建没有关系表的关系
Posted
技术标签:
【中文标题】Hibernate创建没有关系表的关系【英文标题】:Hibernate create relation without relational table 【发布时间】:2021-05-28 22:11:43 【问题描述】:是否可以在不使用映射它们的另一个表的情况下映射休眠实体?
当我在 2 个实体之间创建 @OneToMany 和 @ManyToOne 关系时,hibernate 总是在数据库中创建另一个表来映射关系,我想直接使用映射实体中的列来映射 2 个实体,如下所示:
“InstalledApp”实体:
@OneToMany (fetch = FetchType.EAGER, targetEntity=InstalledAppPort.class, mappedBy = "id")
private List<InstalledAppPort> ports;
“InstalledAppPort”实体:
@ManyToOne (targetEntity=InstalledApp.class, fetch=FetchType.LAZY)
@JoinColumn(name = "iappId")
private InstalledApp iapp;
使用上面的代码时,列表总是空的,我不知道为什么。从技术上讲,这种映射应该有效,但事实并非如此。没有抛出异常。
【问题讨论】:
【参考方案1】:通过使用解决:
@OneToMany (fetch = FetchType.EAGER, targetEntity=InstalledAppPort.class)
@JoinColumn(name = "iappId", referencedColumnName = "id")
private List<InstalledAppPort> ports;
【讨论】:
以上是关于Hibernate创建没有关系表的关系的主要内容,如果未能解决你的问题,请参考以下文章