gpt4 book ai didi

grails - 获取Grails中域的特定属性

转载 作者:行者123 更新时间:2023-12-02 15:21:20 26 4
gpt4 key购买 nike

我正在做一个表清洁服务,该服务以表名和日期字段为参数,这是服务代码:

def cleanTables(tableName , dateField) {
def comparisonDate
def numOfRecordsDeleted
use (TimeCategory){
comparisonDate=new Date() -1.year
}
numOfRecordsDeleted=tableName.where { dateField <=comparisonDate }.deleteAll()
log.info("deleted : " +numOfRecordsDeleted)
}

我已成功将 table name传递给该服务,但无法传递 date field,因此如何从域中获取特定属性,例如,名为 Payments的域获得了属性 dateCreated,因此我将传递给我的服务 PaymentsdateCreated

最佳答案

通过where查询,您可以访问条件查询方法,例如eq(),在这种情况下为le()。这些方法将属性名称作为参数,这是您所需要的。我对代码进行了一些调整,因为您实际上是在与域类(而不是表)进行交互。区别很小,直到您开始使用HQL。

def cleanDomainClass(String domainClassName, String dateField) {
def domainClass = Class.forName("some.package.$domainClassName")
def comparisonDate = use (TimeCategory) { new Date() -1.year }
def numOfRecordsDeleted = domainClass.where { le(dateField, comparisonDate) }.deleteAll()

log.info("deleted : $numOfRecordsDeleted")
}

关于grails - 获取Grails中域的特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com