Grails 2 TransientPropertyValueException。。。突然
在过去的一周里,我一直在这件事上碰头。。。。我来了。 我正在开发一个Grails2Web应用程序,我实现了一个导入服务,以便根据来自合作伙伴系统的XML文件(每天更新其XML文件)将数据(每个季度的办公时间)导入应用程序数据库 完成后,在过去的几天里,一切都运转良好(导入数千个办公时间数据),直到最近,在特定的办公时间数据触发了TransientPropertyValueException 错误显示如下:Grails 2 TransientPropertyValueException。。。突然,grails,grails-2.0,Grails,Grails 2.0,在过去的一周里,我一直在这件事上碰头。。。。我来了。 我正在开发一个Grails2Web应用程序,我实现了一个导入服务,以便根据来自合作伙伴系统的XML文件(每天更新其XML文件)将数据(每个季度的办公时间)导入应用程序数据库 完成后,在过去的几天里,一切都运转良好(导入数千个办公时间数据),直到最近,在特定的办公时间数据触发了TransientPropertyValueException 错误显示如下: Not-null property references a transient valu
Not-null property references a transient value - transient instance must be saved before current operation : app.offices.OpeningHours.season -> app.offices.OpeningHoursSeason. Stacktrace follows:
org.hibernate.TransientPropertyValueException: Not-null property references a transient value - transient instance must be saved before current operation : app.offices.OpeningHours.season -> app.offices.OpeningHoursSeason
并引用这行代码:
openingHours.save(flush: true)
我可能错了,但我对它的理解是,hibernate似乎抱怨我的OpeningHours实例(引用/属于OpeningHoursSeason实例)无法持久化,因为父OpeningHoursSeason实例之前没有持久化/保存(尽管它保存在上面几行)。
我肯定有点不对劲
OpeningHoursSeason域类基本代码如下所示(请注意,域类属性都不是“瞬态的”):
OpeningHours域类基本代码如下所示(此处也没有设置为“transient”的属性):
我仍然不知道我的实现中有什么错误。。。有线索吗?
:)
class OpeningHoursSeason {
String name
Integer startDateDay
Integer startDateMonth
Integer endDateDay
Integer endDateMonth
Set openingHours = []
static belongsTo = [office: Office]
static hasMany = [openingHours: OpeningHours]
static mapping = {
openingHours sort: "weekDayBegin", cascade: 'all-delete-orphan'
}
static constraints = {
name nullable: true
openingHours nullable: true
...
class OpeningHours {
Integer weekDayBegin
Integer weekDayEnd
Integer openHourFirstPeriod
Integer openMinuteFirstPeriod
Integer closeHourFirstPeriod
Integer closeMinuteFirstPeriod
Integer openHourSecondPeriod = null
Integer openMinuteSecondPeriod = null
Integer closeHourSecondPeriod = null
Integer closeMinuteSecondPeriod = null
static belongsTo = [season: OpeningHoursSeason]
static hasMany = [functions: OfficeFunction]