首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >订单中的用户关系

订单中的用户关系
EN

Stack Overflow用户
提问于 2020-08-04 06:03:48
回答 2查看 40关注 0票数 0

我在设置一对多关系时遇到问题,我有一个user类,user有角色,我正在制作order类,因此order有两个用户(雇主和客户),并且我在mappedBy引用一个未知的目标实体属性时出错: br.com.meusite.models.User.orders中的br.com.meusite.models.Order.user。

我有以下内容--这是User类:

代码语言:javascript
复制
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String username;

@JsonIgnore
@NotEmpty
private String password;

@Email
private String email;

private BigDecimal balance;

@JsonIgnore
@OneToMany(mappedBy = "user")
private List<Order> orders = new ArrayList<>();

@ElementCollection
@CollectionTable(name="TELEFONE")
private Set<String> telefones = new HashSet<>();

@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="ROLES")
private Set<Integer> roles = new HashSet<>();

然后是Order类:

代码语言:javascript
复制
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(name = "user_id")
private User customer;

@ManyToOne
@JoinColumn(name = "user_id")
private User employer;

private Payment payment;

@OneToMany(mappedBy = "id.order")
private Set<ItemOrder> items = new HashSet<>();

@JsonFormat(pattern="dd/MM/yyyy HH:mm")
private LocalDateTime date;
EN

回答 2

Stack Overflow用户

发布于 2020-08-04 06:51:28

在您的User文件上,mappedBy属性引用了user,而Order文件上的属性是employer,这就是错误。因此,要么将映射更改为:

代码语言:javascript
复制
// on User
    @JsonIgnore
    @OneToMany(mappedBy = "employer")
    private List<Order> orders = new ArrayList<>();

代码语言:javascript
复制
// on Order
   @JoinColumn(name = "user_id")
   private User user;

注意:,还有,请检查重复的变量

代码语言:javascript
复制
   @ManyToOne
   @JoinColumn(name = "user_id")
   private User customer;
   
   @ManyToOne
   @JoinColumn(name = "user_id")
   private User employer;
票数 0
EN

Stack Overflow用户

发布于 2020-08-04 06:58:35

您正在尝试告诉hibernate创建一个从用户到订单的关系,引用order实体中的user字段。您应该在user表中使用外键。你必须改变

代码语言:javascript
复制
    @OneToMany(name = "user")

代码语言:javascript
复制
    @OneToMany
    @JoinColumn(name = "whatever_the_foreign_key_is.")

请显示订单和用户表的屏幕截图以获得进一步的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63237539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档