【问题标题】:How do I properly update tables in a One to Many Hibernate relationship (by one request)?如何正确更新一对多休眠关系中的表(通过一个请求)?
【发布时间】:2021-08-23 23:38:28
【问题描述】:

我通过 Hibernate 使用 Postgresql,有三个表:users、products、user_products。这是他们的映射

    @Entity
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        @Column(nullable = false)
        @NotBlank
        private String name;
    
        @OneToMany(cascade = CascadeType.ALL)
        private List<Products> product;
    }



    @Entity
    public class Product{
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        @Column(nullable = false)
        @NotBlank
        private String name;
    
        @Column(nullable = false)
        private Integer price;
    }

我知道我可以通过 id 获取用户,然后更新其字段“产品”,然后将用户保存回来。但是是否有可能通过 Hibernate 的一个请求(或使用原始 sql 查询)完成所有这些工作?

【问题讨论】:

  • 请定义您的 user_products 表。您是否尝试插入新的并更新现有的并删除丢失的?
  • @user 我正在尝试为特定用户添加新产品。换句话说,我想为用户更新 List 产品。表 user_products 是由 hibernate 创建的,用于保存用户与其产品之间的关系

标签: java sql postgresql hibernate


【解决方案1】:

我会创建一个单独的实体 UserProduct 并保存它。

这不起作用有什么原因吗?

【讨论】:

  • 您是否提供从用户实体中删除已归档的 List 产品并为实体图像添加字段 userId?我说的对吗?
猜你喜欢
  • 2017-08-04
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
相关资源
最近更新 更多