首页 > 解决方案 > 休眠持久化与多对多关系的瞬态对象

问题描述

我正在寻找一种方法来保存具有多对多关系的 Set 类型字段的对象,我得到这个 Set 时只通知了 Id 属性。但是我遇到了错误“未保存的瞬态实例”,我希望能够保存这个集合,而不必接收具有所有属性的对象,只需要 ID。

@ManyToMany
@JoinTable(
        name = "examclinic_term", 
        joinColumns = { @JoinColumn(name = "idexamclinic") }, 
        inverseJoinColumns = { @JoinColumn(name = "idterm") }
    )
Set<Term> terms = new HashSet<>();

我的实体

@Entity
public class Term {
    @ID
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String description;
    private String html;
}

json

[
  {
    "id": 1
  },
  {
    "id": 2
  },
  {
    "id": 3
  }
]

错误

object references an unsaved transient instance - save the transient instance before flushing

标签: javahibernatejpajdbc

解决方案


推荐阅读