我正在尝试从我的应用程序中删除一个实体,但出现了一些错误。
实体如下所示:
临床信息
@Entity
@Table
public class ClinicInfo extends PersistentObject {
private static final long serialVersionUID = -3352666863795986217L;
@ManyToOne
@JoinColumn(name="appTimezoneId")
@NotNull
private AppTimeZone appTimeZone;
...
...
...
...
}
应用时区
@Entity
@Table
public class AppTimeZone extends PersistentObject {
private static final long serialVersionUID = 212088957599604285L;
@Column(nullable = false, unique = true)
@NotEmpty
private String zoneID;
...
...
}
PersistentObject
在这种情况下同时包含 ID 和版本。
每当我尝试删除 aclinicInfo
时,都会收到以下错误:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.myapp.entity.AppTimeZone
at org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:249)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:459)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:275)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:286)
at org.hibernate.type.TypeHelper.findDirty(TypeHelper.java:294)
在ClinicInfo
删除过程中,我只设置了 AppTimeZone 对象的 ID。
现在,为什么休眠会检查 AppTimeZone 是否脏?
我的目标只是删除一个ClinicInfo
.