获取对象时,我得到一个未保存的瞬态实例异常。
以下是代码:
String string = "name1|name2"
string.split("[|]").each {
if (it) {
println it
Product p = Product.findByName(it.toUpperCase()).save()
if(p) {
Components c = new Components(product: p).save(failOnError: true, flush: true)
st.addToComponents(c)
}
}
}
这是例外
| Error org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: Product; nested exception is org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: Product
我不明白获取对象是如何导致这种情况的。我检查过对象不在数据库中。但是我的FailOnError:true在保存时没有给出任何错误。
答案 0 :(得分:0)
Product p = Product.findByName(it.toUpperCase()).save()
毫无意义。尝试删除save()
:
Product p = Product.findByName(it.toUpperCase())
此外,请在c.validate()
该实例之前尝试save()
。它可能有验证错误