【问题标题】:How to use one-to-many and many-to-one annotations correctly?如何正确使用一对多和多对一的注解?
【发布时间】:2014-04-14 08:28:21
【问题描述】:

早安,

我已经开始了我的第一个基于 CRM 应用程序的 JPA 项目,但我在理解正确使用 ManyToOne 和 OneToMany 注释方面遇到了一些困难。例如,假设我有两个班级;这些将是 Account 和 User 类:

public class Account {

@OneToMany
private Set<User> userList = new HashSet<User>();

public class User {

@ManyToOne
private Account account;

如何正确注释多对一和一对多关系?我已尝试阅读文档,但仍然无法得出正确的结论。

感谢您的关注

【问题讨论】:

  • 注释应该按原样工作 - 您将创建两个单向映射。所以问题是你想做什么不同的事情?
  • 在我的情况下,Account 类可以有多个用户,而一个用户只能有一个帐户。我想通过 JPA 注释来表明这种关系,我真的很困惑如何正确地做到这一点。

标签: java jpa crm


【解决方案1】:

您的案例的“规范”OneToMany 映射,意思是双向的,在您的案例中,多方(拥有方)表中的外键如下所示:

public class Account {

@OneToMany(mappedBy="account")
private Set<User> userList = new HashSet<User>();

public class User {

@ManyToOne
private Account account;

与现有代码的唯一区别是 mappedBy 属性,用于将两个单向关系更改为一个双向关系。

【讨论】:

  • 干杯 Kostja!这就是我需要的信息。这让我对声明的关系有了一些解释。
猜你喜欢
  • 1970-01-01
  • 2022-07-26
  • 2021-09-03
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 2012-03-22
相关资源
最近更新 更多