如何解决如何修复 TransientPropertyValueException:对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例
当我尝试更新时出现此错误:TransientPropertyValueException:对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。我如何知道此错误与 Cascade 类型有关,但我无法解决此问题。 add方法也报错,我在StudentEntity类中将Cascade类型改为Merge,问题就解决了。
@Entity
@Table(name = "teacher")
public class TeacherEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@ManyToMany(cascade = {
CascadeType.PERSIST,CascadeType.MERGE
})
@JoinTable(name = "student_teacher",joinColumns = @JoinColumn(name = "teacher_id"),inverseJoinColumns = @JoinColumn(name = "student_id")
)}
@Entity
@Table(name = "student")
public class StudentEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String surname;
private Integer age;
private BigDecimal scholarship;
@ManyToMany(fetch = FetchType.EAGER,cascade = {
CascadeType.MERGE
})
@JoinTable(name = "student_teacher",joinColumns = @JoinColumn(name = "student_id"),inverseJoinColumns = @JoinColumn(name = "teacher_id")
)
List<TeacherEntity> teacherList;
@ManyToOne
@JoinColumn(name = "school_id")
private SchoolEntity school;}
@Entity
@Table(name = "school")
public class SchoolEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@OnetoMany
private List<StudentEntity> studentList;
@OnetoOne(mappedBy = "school",cascade = CascadeType.ALL)
private SchoolAddressEntity address;}
@Entity
@Table(name = "school_address")
public class SchoolAddressEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@OnetoOne
@JoinColumn(name = "school_id")
private SchoolEntity school;}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。