grails - Grails:使用投影时如何返回域类的实例

标签 grails grails-domain-class

我有一个大约有20个属性的域类。域类上的findBy会产生一个选择查询,该查询具有从数据库中选择的所有列,当所需的列可能仅为1时,这可能会降低性能。

所以我想到了withCriteria。

def sampleDomainInst = SampleDomain.withCriteria{
    projections {
        property('fieldOne')
       }
     eq('id', idVal)
  } 

返回的值是一个列表。但是我需要的是SampleDomain的实例,我该怎么做?

谢谢。
问候,
杰伊·钱德兰

最佳答案

投影的目标是恕我直言,不要让域实例返回。从理论上讲,您可以在投影封闭中添加“id”,然后可以执行DomainClass.get(id)。但这与完全没有预期的情况相同。

如果您的域类具有如此多的属性,而您正使用投影来仅获取它们的一部分,则应考虑将域类拆分为多个联接的类。良好的设计实践是,每个类仅应代表一个抽象。

关于grails - Grails:使用投影时如何返回域类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4449718/

相关文章:

grails - 从现有数据库读取的Grails

grails - Can Grails 3.3 字段插件 f :display show many-to-many

链接到自身的 Grails 表

spring - 在grails中左联接子查询?

grails - Grails-如果值是负数,则将值显示为0

grails - Grails-将自定义字段(列)添加到所有域对象-自动

grails - Grails 2.3.8中两个位置的log4j日志记录配置

grails - 您如何组织grails 2.4.4中的字段,包括静态映射关系?

Grails 命令对象@PostConstruct 还是什么?

grails - 如何在 grails 3.3.11 中深度克隆域对象?