The object refers to an unsaved instance of the transient - saves a temporary instance before flushing Hibernate

I am using Seam Framework. I have 2 objects:

Request.java

@Entity @Table(name = "SRV_REQUEST") public class Request { private Long id; @Id @Column(name = "ID_") public Long getId() { return id; } 

and RequestEvent.java

 @Entity @Table(name = "SRV_REQUEST_EVENT") public class RequestEvent { private Long id; private Request request; @Id @GeneratedValue @Column(name = "ID_") public Long getId() { return id; } @ManyToOne public Request getRequest() { return request; } 

When I commit a transaction:

 Request request = new Request(); // I have to set ID manually request.setId(12345); entityManager.persist(request); RequestEvent event = new RequestEvent(); event.setRequest(request); entityManager.persist(event); 

I got this error:

 object references an unsaved transient instance - save the transient instance before flushing: kz.gov.mci.ipsc.services.RequestEvent.request -> kz.gov.mci.ipsc.services.Request 
+4
source share
2 answers

try it

  Request request = new Request(); // I have to set ID manually request.setId(12345); entityManager.persist(request); entityManager.flush();//this point is important RequestEvent event = new RequestEvent(); event.setRequest(request); entityManager.persist(event); 
+1
source

try adding the {CascadeType.PERSIST, CascadeType.MERGE} getRequest method

0
source

All Articles