sql-server - 避免连接失败时出现空指针

标签 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 约束的遗留数据库上运行。 问题:有一些“ splinter ”的关系,一些“Atendimento”在数据库中有一个 FUNCODIGO,但是没有“Funcionario”有这个标识符。 我可以毫无问题地查询,但是当我将其发送到 View 时,就像这样

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

我收到一条错误消息,提示 grails 无法找到 ID 为 xxxxx 的“Funcionario”。
条件上的 isNotNUll 不起作用,因为该列有数据,但当您尝试解析连接时它会失败。

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

最佳答案

您可以使用ignoreNotFound 告诉Grails 忽略丢失的引用

Documentation

ignoreNotFound:

Specifies how foreign keys that reference missing rows are handled in many-to-one relationships.

class LegacyCdDomain {
    String title
    Thumbnail thumbnail

    static mapping = {
        thumbnail ignoreNotFound: true
    }
}

关于sql-server - 避免连接失败时出现空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365393/

相关文章:

maven-2 - Maven依赖项解析

sql - 将一列的前一行的值添加到当前行的另一列

sql - 如何通过 SQL 输出这个数字列表?

mysql - 带有 MySql 或 SqlExpress 的 ASP.NET?

java - 加载对象时出现 Hibernate 错误 : java. lang.StackOverflowError

java - Hibernate - 持久化两个对象时出现 NonUniqueObjectException

java - infinispan 缓存可以在使用 hibernate 的同一 Spring Boot 应用程序的多个实例之间共享吗?

grails - grails Controller 简单问题

validation - Grails 根据 xsd 1.1 验证 xml 文档

sql-server - 如何使用 dotnet(C#) 连接 SQL Server 多维数据集