gpt4 book ai didi

java - JPA/Hibernate 单向 OneToMany 为 'mappedBy'

转载 作者:行者123 更新时间:2023-12-02 10:05:14 26 4
gpt4 key购买 nike

我最近在我们的存储库中发现了这样的映射:

@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 没有注释 @JoinColumn作为mappedBy。无论如何,它工作得很好:没有冗余更新 - 就像它是双向映射一样。我不是 JPA/Hibernate 方面的专家,而且我从未在教程/指南/文档中看到过这样的映射。我尝试用谷歌搜索这样的映射,但没有找到任何解释。这样映射实体可以吗?谢谢!

最佳答案

双向一对多和多对一关联映射都可以。但是您应该避免域模型中的单向一对多关联。否则,Hibernate 可能会创建意外的表并执行比预期更多的 SQL 语句

单向一对多关联的定义似乎不是问题。您只需要一个映射关联和 @OneToMany 关系的属性。

引用 see ref

关于java - JPA/Hibernate 单向 OneToMany 为 'mappedBy',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55376166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com