如何获取数据与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.transaksiKascif = 1

我想这样的..

def cekList = TransaksiKasDetail.findAllByAndCekNoAvailableAndTransaksiKas("N",trx)

在这种情况下, 我需要从TransaksiKasDetail哪里有transaksiKascif = 2cekDuedate = 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

for more information, you can read this

创造条件

与标准尽量让所有的数据:

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) 
}