在失败的连接上避免空指针

时间:2013-08-21 18:50:41

标签: sql-server hibernate grails

我有我的域类,带有命名查询:

class Atendimento implements Serializable {
    ...
    Funcionario funcionario

    static mapping = {
        ...
        funcionario column: 'FUNCODIGO', sqlType: 'int'
    }

    static namedQueries = {
         atendimentosPorData { data ->
             data.clearTime();
             eq('dataHora', data)
             isNotNull('funcionario')
         }
    }
}

应用程序在没有FK约束的旧数据库上运行。 问题:有一些“破坏”的关系,一些“Atendimento”在数据库上有一个FUNCODIGO,但是没有带有这个标识符的“Funcionario”。 我可以毫无问题地进行查询,但是当我将其发送到视图时,就像这样

${fieldValue(bean: atendimentoInstance, field: "funcionario")}

我收到一条错误消息,说grails无法找到id为“xxxxx”的“Funcionario” 标准上的 isNotNUll 不起作用,因为该列包含数据,但在您尝试解析连接时失败。

有没有办法阻止“有问题”列的连接。

1 个答案:

答案 0 :(得分:4)

您可以使用ignoreNotFound告诉Grails忽略缺少的引用

Documentation

<强> ignoreNotFound

  

指定如何在多对一关系中处理引用缺失行的外键。

class LegacyCdDomain {
    String title
    Thumbnail thumbnail

    static mapping = {
        thumbnail ignoreNotFound: true
    }
}