org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing
碰到这个问题有一阵子了,今天花了一天时间,总算是解决了,虽然不是很明白原理是什么,期待大神指导。
现在又两个类Child和Parent,代码(简版)如下:
public class Child { private String id; //版本控制字段 private Integer version; private String name; private Parent parent; }
public class Parent { private String id; //版本控制字段 private Integer version; private String name; private Set<Child> children; }
这个异常发生在manytoone关系上,比如:保存child。
这里顺便提下这个场景会发生的问题:
<input name='child.parent.id' value=''>
由于html表单提交的时候,没有复制的字段默认是空串,提交的parent id 是空的肯定会报错,网上有人说设置:optional = true(配置文件对应not-null=false)这是解决不了问题的,因为你页面还是提交了一个空值给后台,所以如果不设置parent则在页面不提交child.parent.id,这个可以用js控制(disabled)。
进入正题问题重现parent:我要保存child并关联parent
<input name='child.parent.id' value='xxx'>
依然抛出异常:object references an unsaved transient instance - save the transient instance before flushing
在stackoverflow上看到说:去掉version版本控制字段,就可以啦!试了下果然保存成功,但是我想如果我又想保留版本字段呢?我就手动随便设置了一个版本号,居然也成功了!
最后我把private Integer version;改成private Integer version=0;问题解决。
具体原因还需要深究下,肯定是和版本号有关系了。希望路过的大神指导一下。
相关推荐
THE WAVELET ANALYSIS METHD ON THE TRANSIENT SIGNAL
The effects of surface wettability, from superhydrophilic to superhydrophobic, on transient pool boiling of water under atmospheric pressure were experimentally examined by means of the quenching ...
### Java中的transient关键字详解 在Java编程语言中,`transient`关键字是一个非常重要的概念,主要用于对象序列化过程中对特定变量的控制。当一个类实现了`Serializable`接口时,其对象可以被序列化为一个持久化的...
Static Exciters IEEE ST1A, power system stabilizer with multi-machine, nine-bus ... The base MVA is 100, and system frequency is 60 Hz, The disturbance here is the transient by a single-phase fault time
Java 中的 transient 关键字 在 Java 编程中,transient 关键字是一个非常重要的概念,它用来说明一个属性是临时的,不会被序列化。在 Java 中,序列化是指将对象的状态信息转换为字节流的过程,以便于对象在网络上...
Transient Voltage Suppressors (TVS’s) are devices used to protect vulnerable circuits from electrical overstress such as that caused by electrostatic ...of the transient to a nondestructive level.
在Java编程语言中,`transient`是一个非常重要的关键字,它与对象持久化和序列化密切相关。当一个字段被声明为`transient`时,它表明该字段的值不会随着对象的序列化而保存。这通常用于那些不希望或者不需要在序列化...
This is coding for case transient stabilit. this is simple m file for solve the transient stability case
The test results demonstrate the superiority of the both DL algorithms over other methods in the application of power system transient disturbance classification. Keywords—Convolutional Neural ...
transient stability matlab
At t = 0 s, the DC/DC converter applies 100Vdc to the RL load (the initial ... The peak voltage of 122Vdc at the beginning of the simulation is caused by the transient state of the voltage regulator. At
文章还介绍了一些关键词,如kurtogram(kurtogram)、谱峭度(Spectral kurtosis)、瞬态检测(Transient detection)、振动监控和诊断(Vibration surveillance and diagnostics)、时频分析(Time–frequency ...
在Java编程语言中,`transient`是一个非常重要的关键字,它与对象的序列化息息相关。序列化是将一个对象的状态转换为字节流的过程,这样就可以存储或在网络中传输。当我们标记一个字段为`transient`时,意味着该字段...
transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,
TRANSIENT仿真(以共射放大器为例)工程
标题:Transient analysis of 1D inhomogeneous media by dynamic inhomogeneous finite element method 基于动态非均匀有限元方法的一维非均匀介质瞬态分析
Although the siliconavalanche junction Transient Voltage Suppressor (SAJTVS) will first fail short in most applications, there is alwaysone transient event that will cause it to open initially. In ...
在传热学领域,"1-D Transient"指的是在一维空间中的瞬态传热过程,这是一个重要的理论与实践相结合的课题。本资源包提供了一维非稳态传热分析的学习材料,包括一个实际的小案例和相关的MATLAB程序,旨在帮助学习者...
The transient response of any natural system is the way in which the response of the system behaves as a function of time. Electromagnetic transient studies have always played an essential behavior ...