2012-06-25 3 views
6

के कार्यान्वयन में समर्थित नहीं हैं, मैं grails mongo प्लगइन का उपयोग करके मोंगोड में वसंत-सुरक्षा-एसीएल डोमेन ऑब्जेक्ट्स को जारी रखने की कोशिश कर रहा हूं। कोडस्ट्रिंग-आधारित क्वेरीज़ जैसे [executeQuery] वर्तमान में GORM

aclUtilService.addPermission Phone.class, phoneInstance.id, new PrincipalSid(username), BasePermission.ADMINISTRATION 

मैं त्रुटि निम्न हो रही है की निम्न पंक्ति को क्रियान्वित करते हुए:

स्ट्रिंग आधारित की तरह [executeQuery] प्रश्नों वर्तमान में GORM के इस कार्यान्वयन में समर्थित नहीं हैं। इसके बजाय मानदंडों का उपयोग करें .. स्टैकट्रैक निम्नानुसार है: संदेश: स्ट्रिंग-आधारित क्वेरी [executeQuery] वर्तमान में GORM के कार्यान्वयन में समर्थित नहीं हैं। इसके बजाय मानदंड का प्रयोग करें।

कोई भी कठोर?

**Grails Configuration Details:** 
app.grails.version=2.0.3 
app.name=eateri 
app.servlet.version=2.5 
app.version=0.1 
plugins.mongodb=1.0.0.RC5 
plugins.spring-security-acl=1.1 
plugins.spring-security-core=1.2.7.2 
+5

mongo db के लिए GORM HQL क्वेरी का समर्थन नहीं करता है - aclUtilService.addPermission शायद hql का उपयोग करता है जो इस त्रुटि का कारण बनता है –

+0

@ सुधीर आपकी प्रतिक्रिया के लिए धन्यवाद! – Hari

+1

क्या आप इकाई परीक्षण चलाते समय इसका अनुभव कर रहे हैं? यूनिट में प्रश्नों के लिए इसका कोई समर्थन नहीं है: – ACM64

उत्तर

0

@sudhir उल्लेख किया है, वहाँ aclService में कुछ तरीकों HQL executeQuery विधि का उपयोग कर, की तरह हैं:

protected AclObjectIdentity retrieveObjectIdentity(ObjectIdentity oid) { 
     return AclObjectIdentity.executeQuery(
       "FROM AclObjectIdentity " + 
       "WHERE aclClass.className = :className " + 
       " AND objectId = :objectId", 
       [className: oid.type, 
       objectId: oid.identifier])[0] 
     } 

लेकिन MongoDB GORM प्लगइन HQL का समर्थन नहीं करता, इसलिए बुला पथ जो अपने कोड गिरावट के साथ

:

aclUtilService.addPermission -> aclService.createAcl -> retrieveObjectIdentity

और दो अन्य aclService तरीकों HQL का उपयोग कर: HQL में तरह त्रुटि है 0

deleteEntries, findChildren

तो, इसका एक आसान समाधान mysql और enable hibernate working with mongodb gorm में एसीएल ऑब्जेक्ट्स को स्टोर करना है।

Anther one meta programming के साथ इन 3 aclService विधियों को ओवरराइड करना है।

संबंधित मुद्दे