1

我在父子結構中有兩個域。休眠過濾器不能與父域一起工作

第一個是: -

class Client { 

    String xyz 
    static belongsTo = [site: Site] 

static hibernateFilters = { 
     siteFilter(condition: ':siteId = site_id', types: 'long') 
    } 
} 

而第二個是。

class TicketDetail { 

    Date date 
    Client client 
} 

如果我直接訪問客戶端域名如。

Client.searchByAlphabet(PARAMS).LIST(PARAMS)

Hibernate的過濾器時,我使用TicketDetail標準工作一樣fine.But。

client { 
     site { 
       eq('id', currentSiteId) 
       } 
     } 
projections { 
       distinct 'client' 
      } 

然後客戶端域上的Hibernate篩選器無法工作。如何從父域訪問子域時激活hibernate篩選器。

回答

0

使用createAlias ... E.G.

class Customer { 
    String name 
    Account account 
    BigDecimal minAccountBalance 
    ... 
} 

class Account { 
    BigDecimal currentBalance 
    ... 
} 

Customer.createCriteria().list(){ 
     createAlias('account', 'acc') 
     gtProperty('acc.currentBalance', 'minAccountBalance') 
    } 
+0

它不適用於休眠過濾器。 –

+0

你有什麼錯誤? – user903772

+0

我沒有收到任何錯誤,但我的hibernateFilters無法正常工作。我正在獲得所有記錄。但根據過濾器,它應該只爲選定的網站ID返回記錄。 –