我有一个域类,带有一个命名查询:

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”。
我可以毫无问题地查询,但是当我将其发送到 View 时,就像这样
${fieldValue(bean: atendimentoInstance, field: "funcionario")}

我收到一条错误消息,说grails找不到ID为xxxxx的“Funcionario”。
条件上的isNotNUll无效,因为该列具有数据,但是当您尝试解析联接时,它将失败。

有没有一种方法可以防止“问题”列上的联接。

最佳答案

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

Documentation

ignoreNotFound :


class LegacyCdDomain {
    String title
    Thumbnail thumbnail

    static mapping = {
        thumbnail ignoreNotFound: true
    }
}

09-27 21:11