繁体   English   中英

JPA / Hibernate单向OneToMany为“ mappedBy”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM