2016-11-07 17 views
0

テーブルからデータを取得するのは混乱しますbelong to他のテーブル。このようなjoinテーブル条件で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です。

私はcif = 2transaksiKascekDuedate = today

答えて

1

findAll

などを使用できます。 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()]) 

、あなたはTransaksiKas

for more information, you can read this

に条件を作成することができます
1

を基準にしてみましたTransaksiKasDetailからすべてのデータを取得する必要があります。このように、この場合..

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

、 を試してみました:

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) 
} 
関連する問題