2015-12-10 49 views
0

我可以將其轉換爲GRAILS/GORM。如果是的話,請任何幫助。如何將原生sql轉換爲grails/gorm

select b.id, b.username, b.first_name, b.last_name 
from tb_user_orgpermissions a 
inner join tb_user b on a.username = b.username 
where 
(a.department_id = :dept_id) 
and (a.agency_id = :agy_id) 
+0

你能更精確。你想爲上述查詢創建GORM域還是要將其轉換爲gql或criteriaQuery或hql。 –

+0

我想將其轉換爲grails createCriteria。 –

+0

請指定您的域名並解釋您的查詢。 –

回答

0

要創建等效的查詢作爲GORM條件查詢,你需要的第一件事就是爲每個表域類(適當協會)。作爲一個例子,這裏的一些僞代碼:

class User { 
    String username 
    String firstName 
    String lastName 

    static hasOne = [permission: UserPermission] 
} 

class UserPermission { 
    Department department 
    Agency agency 
} 

class Department {} 
class Agency {} 

在這個例子中Userone-to-one協會UserPermission

隨着地方,你可以創建一個條件查詢像這樣(與projections):

User.withCriteria { 
    projections { 
     property 'id' 
     property 'username' 
     property 'firstName' 
     property 'lastName' 
    } 

    permission { 
     department { 
      eq 'id', dept_id 
     } 

     agency { 
      eq 'id', agy_id 
     } 
    } 
}