我正在使用 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......
有人对这个问题有任何意见或解释吗?非常感谢您的帮助!!