title: Object references an unsaved transient instance - save the transient instance before flushing hibernate JPA
body: <p>When I try to save the data this error is shown:</p>
  
  <blockquote>
    <p>com.LTR.entity.Silicon.platform -> com.LTR.entity.Platform, </p>
  </blockquote>
  
  <p>It says that I need to save the transient.</p>
  
  <p>I have been trying to put cascadeType.ALL but this does not work.</p>
  
  <pre><code>@Entity
  @Table(name="silicon",uniqueConstraints={@UniqueConstraint(columnNames = {"silicon_visual_id"})})
  @EnableTransactionManagement
  @DynamicUpdate
  public class Silicon implements Serializable {
  
      private static final long serialVersionUID = 1L;
  
      @Id
      @GeneratedValue(strategy=GenerationType.IDENTITY)
      @Column(name="id", unique = true, nullable = false)
      private Long id;
  
      @Column(name="mir", unique = false, nullable = true)
      private Long mir;
  
      @Column(name = "silicon_name", nullable = false, length= 45)
      private String siliconName;
  
      @Column(name = "type_silicon", nullable = false, length= 45)
      private String typeSilicon;
  
      @Column(name = "qdf", nullable = true, length= 45)
      private String qdf;
  
      @Column(name = "silicon_visual_id", nullable = false, length= 45)
      private String siliconVisualId;
  
      @Column(name = "cpu_id", nullable = true, length= 45)
      private String cpuId;
  
      @Column(name = "stepping", nullable = true, length= 45)
      private String stepping;
  
      @Column(name = "socket", nullable = true, length= 45)
      private String socket;
  
      @Column(name = "status_silicon", nullable = false,length= 45)
      private String statusSilicon;
  
      @JsonIgnore
      @ManyToOne(fetch=FetchType.EAGER)
      @JoinColumn(name="user_owner", nullable = false)
      private User userOwner;
  
      @DateTimeFormat(pattern = "yyyy-MM-dd")
      @Column(name = "date_admission", nullable = false)
      private Date dateAdmission;
  
      @JsonIgnore
      @ManyToOne(fetch=FetchType.EAGER)
      @JoinColumn(name="user_request", nullable = true)
      private User userRequest;
  
      @JsonIgnore
      @ManyToOne(fetch=FetchType.EAGER)
      @JoinColumn(name="user_last_returned", nullable = true)
      private User userLastReturned;
  
      @DateTimeFormat(pattern = "yyyy-MM-dd")
      @Column(name = "date_delivered", nullable = true)
      private Date dateDelivered;
  
      @JsonIgnore
      @ManyToOne(fetch=FetchType.EAGER)
      @JoinColumn(name="platform_current", nullable = true)
      private Platform platform;
  
      @JsonIgnore
      @ManyToOne(fetch=FetchType.EAGER)
      @JoinColumn(name="platform_own", nullable = true,updatable= false)
      private Platform platformOwn;
  
      /*GETTERS AND SETTERS*/
  
  </code></pre>
  
  <pre><code>@Entity
  @Table(name="platform")
  public class Platform implements Serializable {
  
      private static final long serialVersionUID = 1L;
  
      @Id
      @GeneratedValue(strategy=GenerationType.IDENTITY)
      @Column(name="platform_id", unique = true, nullable = false)
      private Long platformId;
  
      @JsonIgnore
      @ManyToOne(fetch=FetchType.EAGER)
      @JoinColumn(name="locationId", nullable = false)
      private Location location;
  
      @Enumerated(EnumType.STRING)
      @JoinColumn(name="businessUnit", nullable = true)
      private BusinessUnit businessUnit;
  
      @Column(name = "name", nullable = false, length= 45,unique = true)
      private String name;
  
      @Column(name = "project", nullable = false, length= 45)
      private String project;
  
      @Column(name = "serialPlatform", nullable = false, length= 45, unique 
          = true)
      private String serialPlatform;
  
      @Column(name = "model", nullable = false, length= 45)
      private String model;
  
      @Column(name = "chasisSerial", nullable = false, length= 45)
      private String chasisSerial;
  
      @Column(name = "chasisModel", nullable = false, length= 45)
      private String chasisModel;
  
      @Column(name = "ismpKitName", nullable = false, length= 45)
      private String ismpKitName;
  
      @Column(name = "ismpSerialNumber", nullable = false, length= 45)
      private String ismpSerialNumber;
  
      @Column(name = "assignedTo", nullable = false, length= 45)
      private String assignedTo;
  
      @Column(name = "OwnedBy", nullable = false, length= 45)
      private String OwnedBy;
  
      @Column(name = "ismNumber", nullable = false, length= 45)
      private int ismNumber;
  
      @DateTimeFormat(pattern = "yyyy-MM-dd")
      @Column(name = "receivedDate", nullable = false)
      private Date receivedDate;
  
      @Column(name = "asset", nullable = false, length= 45)
      private int asset;
  
      @Column(name = "startStatus", nullable = false, length= 45)
      private boolean startStatus;
  
      @Column(name = "finalStatus", nullable = false, length= 45)
      private boolean finalStatus;
  
      @Column(name = "cloudReady", nullable = false, length= 45)
      private boolean cloudReady;
  
      @OneToMany(mappedBy="platform")
      private List&lt;Annotation&gt; annotations;
  
      @OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL, mappedBy 
          = "platform")
      private Set&lt;Silicon&gt; userRole = new HashSet&lt;Silicon&gt;();
  
      @OneToOne(fetch = FetchType.LAZY, mappedBy = "platform")
      private Host Host;
  
      /*GETTERS AND SETTERS*/
  
  </code></pre>
  
  <pre><code>org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.LTR.entity.Silicon.platform -&gt; com.LTR.entity.Platform; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.LTR.entity.Silicon.platform -&gt; com.LTR.entity.Platform
  </code></pre>
  
  <pre><code>2019-09-09 08:32:43.161 ERROR 21968 --- [nio-8081-exec-9] o.h.i.ExceptionMapperStandardImpl        : HHH000346: Error during managed flush [org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.LTR.entity.Silicon.platform -&gt; com.LTR.entity.Platform]
  2019-09-09 08:32:43.172  INFO 21968 --- [nio-8081-exec-9] com.LTR.controller.SiliconController     : org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.LTR.entity.Silicon.platform -&gt; com.LTR.entity.Platform; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.LTR.entity.Silicon.platform -&gt; com.LTR.entity.Platform
  </code></pre>
  
  <pre><code>2019-09-09 09:25:45.500  WARN 8000 --- [nio-8081-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1048, SQLState: 23000
  2019-09-09 09:25:45.500 ERROR 8000 --- [nio-8081-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : Column 'owned_by' cannot be null
  2019-09-09 09:25:45.506 ERROR 8000 --- [nio-8081-exec-1] o.h.i.ExceptionMapperStandardImpl        : HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement]
  2019-09-09 09:25:45.517  INFO 8000 --- [nio-8081-exec-1] com.LTR.controller.SiliconController     : org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
  
  </code></pre>
  
  <p>I dont know why when i tried to update or insert this crashed with this error
  , and also this only happens when the platform object is null when i try to update</p>
  
  <p>when i set cascadeType.ALL it sasys that the ownedBy from the platform entity is empty but in the database is no empty</p>