我正在研究GGTS 3.4 - 在创建域模型VideoDisplayMgmtShr的新实例的同时,我在创建该域的新实例之前引入了对h2 dB域模型内容的查询检查。这是查询:
def vidDispMgmLst = VideoDisplayMgmtShr.findAll{ displayMode == videoDisplayMgmtShrInstance.displayMode}
错误是:
Class: org.h2.jdbc.JdbcSQLException
Message: NULL not allowed for column "EXPIRY_DATE";
SQL statement: insert into video_display_mgmt_shr ...
如果我删除此检查查询,则新实例的保存工作正常 - 因为expiryDate不为null。我更加困惑,因为查询没有创建一个新实例,所以我不明白为什么它应该抛出这个错误?此外,expiryDate在模型定义中设置为null。
这个域模型最后还有另一个域模型的belongsTo约束 - 但是这一切都在创建中得到了解决。
域类是:
class VideoDisplayMgmtShr {
// Defines the management of all videos that are published
static constraints = {
description(blank:true, nullable:true)
startDate(blank:true, nullable:true)
expiryDate(blank:true, nullable:true)
pubRights(inList:["Full", "Rest"]) // Full - full publish rights
//Rest- Restricted rights - with a watermark for some concessionary publishing
displayMode(inList:["Vanilla", "Vimeo", "YouTube"])
}
static mapping = {
datasource 'publish'
}
String description
Date startDate = new Date()
Date expiryDate = new Date() + 100
String pubRights = "Rest" // display type
String displayMode = "Vanilla" // type/ destination of publication
static belongsTo = [ publishedBT: PublishedShr]
}
使用此域类属于另一个域类:
static hasMany = [vidDMHM: VideoDisplayMgmtShr] // links to a display management entry
不确定这是否相关,但这有另一种映射结果:L
static mapping = {
datasource 'publish'
vidDMHM cascade: "all-delete-orphan"
}
以前有人见过这样的事吗?
-mike