3

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

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不起作用,因为该列有数据,但是当您尝试解析联接时它会失败。

有没有办法防止加入“有问题的”列。

4

1 回答 1

4

你可以ignoreNotFound用来告诉 Grails 忽略丢失的引用

文档

忽略未发现

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

class LegacyCdDomain {
    String title
    Thumbnail thumbnail

    static mapping = {
        thumbnail ignoreNotFound: true
    }
}
于 2013-08-21T19:03:49.490 回答