我正在使用Spring boot 2.0.1,我有以下实体:
@Entity
public class Session {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@ManyToOne
private Groupe groupe;
...
和
@Entity
public class Groupe {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@OneToMany(mappedBy="groupe")
private List<Session> sessions;
...
我想知道为什么如果我在Session之前坚持Group工作,但如果我做相反的事情则不会,这是一个例子: 工作案例:
Groupe groupe1= new Groupe("groupe1",professor);
Session session1 = new Session(new Date(),false,groupe1);
Session session2 = new Session(new Date(),true,groupe1);
groupeRepository.save(groupe1); // <-----
sessionRepository.save(session1);
sessionRepository.save(session2);
不工作案例:
Groupe groupe1= new Groupe("groupe1",professor);
Session session1 = new Session(new Date(),false,groupe1);
Session session2 = new Session(new Date(),true,groupe1);
sessionRepository.save(session1);
sessionRepository.save(session2);
groupeRepository.save(groupe1); // <-----
它给了我以下例外:
org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : gestionAbs.bean.Session.groupe -> gestionAbs.bean.Groupe
我期待相反,因为关系是由Session映射的,Session是关系的“所有者”,持久会话应该坚持下去,但似乎我错了,任何人都可以向我解释为什么请?
谢谢