[英]JPA/Hibernate Unidirectional OneToMany as 'mappedBy'
我最近在我们的仓库中发现了这样的映射:
@Entity
...
public class Foo{
...
@OneToMany(mappedBy = "someField", cascade = CascadeType.ALL, orphanRemoval = true)
public Set<Bar> bars;
...
}
@Entity
@IdClass(Bar.Key.class)
...
public class Bar{
@Id
public long someField;
@Id
public long anotherField;
...
static class Key implements Serializable {
public long someField;
public long anotherField;
}
}
两个表中都没有外键。 我很惊讶, Bar
类中没有@ManyToOne
字段,并且@OneToMany
在没有mappedBy
情况下被注释为@JoinColumn
。 无论如何,它都是完美的:没有冗余更新-就像是双向映射。 我不是JPA / Hibernate方面的专家,并且从未在tutorials / guides / docs中看到这种映射。 我试图用谷歌搜索这种映射,但是没有找到任何解释。 这样映射实体可以吗? 谢谢!
双向一对多关联和多对一关联映射都很好。 但是您应该在域模型中避免单向一对多关联。 否则,Hibernate可能会创建意外的表并执行比您期望的更多的SQL语句 。
单向一对多关联的定义似乎不是问题。 您只需要一个映射关联和@OneToMany关系的属性。
参考见参考
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.