gpt4 book ai didi

java - 我不会更新 JPA 关系的双方,但它有效。好的?

转载 作者:行者123 更新时间:2023-12-01 15:41:25 25 4
gpt4 key购买 nike

这些是我的实体

@Entity
public class User {

@ManyToMany(mappedBy="admins")
private Set<Game> adminForGames = new HashSet<Game>();

@Entity
public class Game {

@ManyToMany
@JoinTable(
name="Game_adminUsers",
joinColumns=@JoinColumn(name="Game_id"),
inverseJoinColumns=@JoinColumn(name="User_id")
)
private Set<User> adminUsers = new HashSet<User>();

这就是我创建新 Game 的方式:

Game game = new Game(index, name);
game.getAdminUsers().add(someUser);
em.persist(game);

如您所见,我没有更新 someUser将新游戏添加到他的 adminForGames ,尽管根据 JPA 规范,这是我的责任。

不过,它工作得很好,这是合乎逻辑的,因为 User实际上不需要写入记录(因为关系使用连接表)。

它是“偶然”工作的(我的实现是 Hibernate)还是我实际上做得正确?

最佳答案

我对 JPA 规范的理解是,用户有责任在内存中设置正确的关系。

对于数据库,设置关系的拥有方就足够了(这就是您所做的)。因此(从理论上讲)如果您仅设置非拥有方,它应该不起作用。

关于java - 我不会更新 JPA 关系的双方,但它有效。好的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988817/

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