我有我的域类,带有命名查询:
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 忽略丢失的引用
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/