我正在使用 Spring+Hibernate+MS SQL 开发一个 Web 应用程序并遇到一个奇怪的症状:
我的父对象A
有一个字段引用 ( FK
) 另一个子对象B
。在A
,我有注释
@ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.EAGER)
当我Session.SaveOrUpdate
呼吁A
。一切正常,B
并且除了一种情况外也保持不变:
当id field
表 B 的(这是主键)为 0 时,它会给出异常:
对象引用了一个未保存的瞬态实例...
如果它不为零,那么一切都很好。
正如大多数人对异常“对象引用未保存的瞬态实例......”所建议的那样,我也尝试将注释更改为
@ManyToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER).
然后它给了我另一个错误说Primary key cannot be NULL
......
有人对这个问题有任何意见或解释吗?非常感谢您的帮助!!