如何获取数据与findAllBy与连接表条件
问题描述:
我迷惑从2表中检索数据其中belong to
其他表。如何获取数据与findAllBy与连接表条件
这样的.. 这是域TransaksiKas.groovy
class TransaksiKas {
String trxNo
Date trxDate
String ctrlNo
Kas kas
Cif cif
String deleteFlag = "N"
static constraints = {
}
}
,这是TransaksiKasDetail.groovy
class TransaksiKasDetail {
TransaksiKas transaksiKas
Account account
Invoice salesInvoice
PurchaseInvoice purchaseInvoice
BigDecimal amount
String dt //D atau K
String keterangan
String cekNo
String cekNoAvailable
Date cekDueDate
Bank bank
static constraints = {
amount(nullable: false, blank: true, min: new BigDecimal('0.0'), max: new BigDecimal('99999999999999999.99'), scale: 2)
account(nullable: true,blank:true)
purchaseInvoice(nullable: true,blank: true)
salesInvoice(nullable: true,blank: true)
dt(nullable: true,blank: true)
keterangan(nullable: true,blank: true)
cekNo(nullable: true,blank: true)
cekDueDate(nullable: true,blank:true)
bank(nullable: true,blank:true)
cekNoAvailable(nullable: true,blank:true)
}
}
在我的情况,我试图从TransaksiKasDetail
哪里得到的所有数据TransaksiKasDetail.transaksiKas
有cif
= 1
。
我想这样的..
def cekList = TransaksiKasDetail.findAllByAndCekNoAvailableAndTransaksiKas("N",trx)
在这种情况下, 我需要从TransaksiKasDetail
哪里有transaksiKas
与cif = 2
和cekDuedate
= today
答
例如,您可以使用findAll
。
def example = TransaksiKasDetail.findAll(
"from TransaksiKasDetail as u where u.cekNoAvailable = :cek and cekNo != null and cekDueDate = :skrg and transaksiKas.cif = :cif" , [cif:cif,cek:'N',skrg:new Date().clearTime()])
使用findAll
,您可以在TransaksiKas
答
与标准尽量让所有的数据:
Date today = new Date().clearTime()
def results = TransaksiKasDetail.createCriteria().list {
transaksiKas {
cif {
eq("id",2) // or whatever cif == 2 means
}
}
between("cekDueDate", today, today + 1)
}