我有我的域类,带有命名查询:
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 不起作用,因为该列包含数据,但在您尝试解析连接时失败。
有没有办法阻止“有问题”列的连接。
答案 0 :(得分:4)
您可以使用ignoreNotFound
告诉Grails忽略缺少的引用
<强> ignoreNotFound 强>:
指定如何在多对一关系中处理引用缺失行的外键。
class LegacyCdDomain {
String title
Thumbnail thumbnail
static mapping = {
thumbnail ignoreNotFound: true
}
}