2012-10-17 34 views
10

Tôi cần trợ giúp về việc tạo tiêu chí ngủ đông cho đối tượng lồng nhau. Ví dụ:Làm thế nào để tạo tiêu chí trong groovy/grails cho đối tượng lồng nhau?

class office{ 
    Integer id; 
    OfficeDetails cmdData ; 
} 

class OfficeDetails { 
    Integer id; 
    Region region; 

} 

class Region { 
    Integer id; 
    Integer regionNum; 
} 

Bây giờ, từ các lớp dịch vụ (officeService) Tôi cố gắng để kéo lên tất cả các cơ quan phù hợp với một khu vực nhất định như:

List<Office> findAllByRegion(Integer regionNumber){ 
    def criteria = { eq ('cmdData.region.regionNum', regionNumber) } 
    def allOfficesInTheRegion = Office.findAll(criteria) 

    return allOfficesInTheRegion 
} 

Luôn nhận được ngoại lệ: "org. hibernate.QueryException: không thể giải quyết thuộc tính: " Tôi cần tìm đúng cách để tạo tiêu chí cho truy vấn này.Bạn có thể trợ giúp không?

Trả lời

16

Xem "truy vấn các hiệp hội" dưới criteria section of the user guide:

def criteria = { 
    cmdData { 
    region { 
     eq('regionNum', regionNumber) 
    } 
    } 
} 
+0

Đối với tôi và những người khác lợi ích Copy đoạn mã làm việc: tiêu chí def = MyOffice.createCriteria(); def results = criteria.list { cmtData { khu vực { eq ("regionNum", regionNumber) } } }; kết quả trả về; – Patty

Các vấn đề liên quan