Grails - 查找期间列错误不允许SQL NULL

时间:2014-06-27 15:30:07

标签: sql grails

我正在研究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

0 个答案:

没有答案