Avatar ·

如何修复保存关联实体时Hibernate错误“object references an unsaved transient instance”?

大家好!我是一名初学Java开发者,在使用Hibernate时遇到了一个问题。我有两个实体:`Author`和`Book`。一个作者可以写多本书,每本书引用一个作者(@ManyToOne关联)。 当我尝试保存一本新书和一个新作者时,Hibernate抛出异常:`org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.example.Book.author`。 这是我的代码: ```java @Entity public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "author", cascade = CascadeType.ALL) private List books = new ArrayList<>(); } @Entity public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @ManyToOne @JoinColumn(name = "author_id") private Author author; } ```