【问题标题】:I just want to use entity values not to update from other entity我只想使用实体值而不是从其他实体更新
【发布时间】:2021-09-27 10:20:08
【问题描述】:

我正在使用spring boot rest api,data jpa,我只想使用事件类而不是从人员类更新。 以下是实体类,

 @Entity
 @Table(name = "person")
 public class Person {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer person_id;
 private Integer age;
 String first_name;
 String last_name;
 @ManyToMany(fetch = FetchType.LAZY,
        cascade = {
            CascadeType.PERSIST,
            CascadeType.MERGE
        })
  @JoinTable(name = "person_event",
        joinColumns = { @JoinColumn(name = "person_id") },
        inverseJoinColumns = { @JoinColumn(name = "event_id") })
  private Set<Event> event;
   }

事件类是

    @Entity
    @Table(name = "event")
    public class Event {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)

   private Integer event_id;
   private String event_date;
   private String title;
    }

我将来自邮递员的值添加为 json 字符串,我想从事件实体中添加事件值,但我不想从人员实体中更新这些值。从人员实体我只想使用事件 ID,但我不想更新事件表。

    {
    "age": 32,
    "first_name": "Srinath",
    "last_name": "murugula",
    "event": [
        {
            "event_id": 1
        },
        {
            "event_id": 3
        }
      ]
     }

上面的字符串是添加人员但也更新实体类的其他字段(即event_date和title为null。因为我没有提到这些字段。在Person类中我只想使用id但不想更新事件表字段。

【问题讨论】:

    标签: java spring-boot spring-data-jpa postman


    【解决方案1】:

    你可以使用:

    @Cascade({CascadeType.SAVE_UPDATE})
    

    https://mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/

    【讨论】:

      【解决方案2】:

      我用过:

      @Cascade({CascadeType.Detach})
      

      它解决了我的问题。工作正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-14
        • 2011-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多