我有一个域类,带有一个命名查询:
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
}
}