gpt4 book ai didi

hibernate - Grails:org.hibernate.TransientObjectException

转载 作者:行者123 更新时间:2023-12-02 14:21:54 24 4
gpt4 key购买 nike

简单的Groovy \ Grails代码:

def start = {
source.save()

def result = getJson(hotelSite, eng + index, [:])
parse(JSONObject.fromObject( result.json.text() ))

render "OK"
}

def parse = {JSONObject json ->
def cities = json.get("filter").cities
println cities
def kievHotels = getJson(hotelSite, eng + root + '/searchhotelsbycity', ['city' : 'kiev'])
kievHotels = JSONObject.fromObject(kievHotels.json.text())
println kievHotels

kievHotels.rows.each { ht->
HotelText hotelText = new HotelText(lang : 'en', name : ht.l_name, description : ht.description, address : ht.address)
hotelText.save(/*flush:true*/)
println "hotel text saved"
Hotel hotel = new Hotel(lat : ht.lat, lon : ht.lon, source : source, sourceid : ht.id)
hotel.addToHotelTexts(hotelText)
//hotel.save(/*flush:true*/)
println "hotel saved"
ht.options.each {op->
new HotelFeatures(lang:'en', name : op, source : source, hotel : hotel).save()
}
println "options saved"
ht.photos.each {ph->
new HotelPhotos(hotel : hotel, photourl : ph, type : 'hotel').save()
}
println "photo saved"
hotel.save()
}
println "THE END"
return "THE END"
}

def getJson = {uri, path, query ->
Thread.sleep(10)
return withHttp(uri: uri) {
return get(path : path, query : query) { resp, json ->

return ['response' : resp, 'json' : json ]

}
}
}

一切都必须是完美的,但是grails在“开始”方法\关闭执行结束后会引发异常(程序打印“THE END”,呈现“OK”消息,然后引发异常):

org.springframework.dao.InvalidDataAccessApiUsageException :对象引用了一个未保存的临时实例-在刷新之前保存该临时实例:com.stanfy.sweethome.domains.Hotel;嵌套异常为

org.hibernate.TransientObjectException :对象引用了一个未保存的临时实例-在刷新之前保存该临时实例:com.stanfy.sweethome.domains.Hotel
在java.lang.Thread.run(Thread.java:619)

引起原因: org.hibernate.TransientObjectException :对象引用了一个未保存的临时实例-在刷新之前保存该临时实例:com.stanfy.sweethome.domains.Hotel
...还有1个

最佳答案

在您的集合映射中,您必须指定cascade=CascadeType.ALL(我不知道它在Groovy中的精确程度)。

该异常表示您有一个其元素未保留的集合。只有设置了以上选项,Hibernate才会自动保留它们。

附言您可能已经搜索了关于该异常的数百个线程(以及关于SO的线程)。

关于hibernate - Grails:org.hibernate.TransientObjectException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com