grails createCriteria 用于日期计算
grails createCriteria for date calculation
我正在尝试使用 criteria
从数据库中获取数据
Domain class
发票-
class Invoice{
Date invoiceNo
Date invoiceDate
int interval
static constraints = { }
}
来自 controller
的 criteria
模块
if(!params.sort && !params.order) {
params.sort = "invoiceDate + interval" //invoiceDate+ interval
params.order = "asc"
}
def c = Invoice.createCriteria()
def results = c.list(params) {
between("invoiceDate+ interval", invoiceDate, invoiceDate+ interval)
}
我想根据 invoiceDate
& interval
计算 dueDate
。
我想要这样的结果
invoiceNo | invoiceDate | interval| dueDate |
001 | 2016-09-30 | 5 | 2016-10-05 |
002 | 2016-09-15 | 5 | 2016-09-20 |
我会坚持要求您修改 Domain class
以添加 derived field
,如下所示。
已修改 Domain class
- 添加派生字段 dueDate
class Invoice{
Date invoiceNo
Date invoiceDate
int interval
//new field added
Date dueDate //Derived filed- will not persisted to the database
static mapping = {
//formula to calculate dueDate (invoiceDate + interval)
dueDate formula:"ADDDATE(invoice_date, interval)"
}
static constraints = { }
}
criteria
代码片段 - 获取 dueDate
介于 current Date
和 current Date + 7
之间的发票。
def criteria = Invoice.createCriteria()
Date currentDate = new Date()
//fetching data based on the criteria
List invoiceList = criteria.list {
between('dueDate', currentDate, (currentDate + 7))
}
我正在尝试使用 criteria
Domain class
发票-
class Invoice{
Date invoiceNo
Date invoiceDate
int interval
static constraints = { }
}
来自 controller
的 criteria
模块
if(!params.sort && !params.order) {
params.sort = "invoiceDate + interval" //invoiceDate+ interval
params.order = "asc"
}
def c = Invoice.createCriteria()
def results = c.list(params) {
between("invoiceDate+ interval", invoiceDate, invoiceDate+ interval)
}
我想根据 invoiceDate
& interval
计算 dueDate
。
我想要这样的结果
invoiceNo | invoiceDate | interval| dueDate |
001 | 2016-09-30 | 5 | 2016-10-05 |
002 | 2016-09-15 | 5 | 2016-09-20 |
我会坚持要求您修改 Domain class
以添加 derived field
,如下所示。
已修改 Domain class
- 添加派生字段 dueDate
class Invoice{
Date invoiceNo
Date invoiceDate
int interval
//new field added
Date dueDate //Derived filed- will not persisted to the database
static mapping = {
//formula to calculate dueDate (invoiceDate + interval)
dueDate formula:"ADDDATE(invoice_date, interval)"
}
static constraints = { }
}
criteria
代码片段 - 获取 dueDate
介于 current Date
和 current Date + 7
之间的发票。
def criteria = Invoice.createCriteria()
Date currentDate = new Date()
//fetching data based on the criteria
List invoiceList = criteria.list {
between('dueDate', currentDate, (currentDate + 7))
}