gpt4 book ai didi

java - Hibernate 多对多单向映射

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

我有两个表“用户”和"file"。我希望能够控制可以下载文件的用户,为此我正在考虑使用 user_id 和 file_id 创建中间表 FILE_PERMISSIONS。

从数据库级别来看,我明白如何解决问题,但是在 Hibernate 级别上,我无法真正理解应该如何映射这种关系。我的看法是这样的:

public class User {
private Integer userId;
}

public class File {
private Integer fileId;
private List<Integer> userIds;
}

所以我希望我的 File 对象知道可以下载该文件的所有用户的 id 属性,但反之则不然,这样用户就不知道这些文件。

根据我读到的内容,我可以使用多对多单向关系,但我不确定我只能拥有用户的 ID,而不能拥有用户对象本身。

最佳答案

您可以通过以下结构来管理它。

用户:

@Entity
public class User {
@Id
private Integer userId;

// getters, setters
}

文件:

@Entity
public class File {
@Id
private Integer fileId;

@ManyToMany
@JoinTable(
name = "file_permissions",
joinColumns = @JoinColumn(name = "file_id"),
inverseJoinColumns = @JoinColumn(name = "user_id")
)
private Set<User> users;

// getters, setters
}

关于java - Hibernate 多对多单向映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752595/

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