sách gpt4 ai đã đi

Đối tượng tham chiếu đến một thể hiện tạm thời chưa lưu - lưu thể hiện tạm thời trước khi xóa hibernate jpa

In lại 作者:行者123 更新时间:2023-12-02 00:51:21 25 4
mua khóa gpt4 Nike

当我尝试保存数据时,显示此错误:

com.LTR.entity.Silicon.platform -> com.LTR.entity.Platform,

它说我需要保存 transient 。

我一直在尝试放置cascadeType.ALL,但这不起作用。

@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*/

@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 annotations;

@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL, mappedBy
= "platform")
private Set userRole = new HashSet();

@OneToOne(fetch = FetchType.LAZY, mappedBy = "platform")
private Host Host;

/*GETTERS AND SETTERS*/

org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.LTR.entity.Silicon.platform -> 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 -> com.LTR.entity.Platform
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 -> 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 -> 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 -> com.LTR.entity.Platform
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

我不知道为什么当我尝试更新或插入此错误时崩溃了,而且只有当我尝试更新时平台对象为空时才会发生这种情况

当我设置cascadeType.ALL时,平台实体的ownedBy为空,但数据库中不为空

1 Câu trả lời

您需要在保存芯片之前保存平台,因此 Persist 是您在此处需要的 CascadeType。

@JsonIgnore
@ManyToOne(fetch=FetchType.EAGER, cascade = CascadeType.PERSIST)
@JoinColumn(name="platform_current", nullable = true)
private Platform platform;

关于java - 对象引用未保存的 transient 实例 - 在刷新 hibernate JPA 之前保存 transient 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57856022/

25 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com