2010-11-14 23 views
13


Tôi muốn mong muốn tải cấu trúc, hai cấp độ sâu trong một chuỗi liên kết. Nội dung nào đó dọc theo dòng:withCriteria hai cấp độ liên kết sâu háo hức tìm nạp grails

class TopLevel { 
    String name 

    LevelOne levelOne 
}  

class LevelOne { 
    String name 

    LevelTwo levelTwo 
} 

class LevelTwo { 
    String name 
} 

Tôi muốn tải toàn bộ cấu trúc. Tìm kiếm xung quanh tôi tìm thấy ví dụ này, nhưng nó không hoạt động. "Println" đã tạo một truy vấn tới bảng LevelTwo.

def result = TopLevel.withCriteria { 
    eq('name', 'test') 
    fetchMode "levelOne", FetchMode.JOIN 
    levelOne { 
     fetchMode "levelTwo", FetchMode.JOIN 
    } 
} 

println result.levelOne.levelTwo.name 

Đánh giá cao sự trợ giúp!
- Steve

Trả lời

21

Có hoạt động. Đây là nước sốt bí mật:

def result = TopLevel.withCriteria { 
    eq('name', 'test') 
    fetchMode 'levelOne', FetchMode.JOIN 
    fetchMode 'levelOne.levelTwo', FetchMode.JOIN 
    fetchMode 'levelOne.levelTwo.levelThree', FetchMode.JOIN 
} 
Các vấn đề liên quan