मैं एक एसक्यूएल क्वेरी में कोई CamelCase बलों:ResultTransformer इकाई क्षेत्रों
List<Employee> employees = getCurrentSession()
.createSQLQuery(
"select"
+ e.id as id,e.first_name as firstName,e.password as password
+ "from employee e,employee_role er,role r where e.employee_id=er.employee_id and er.role_id=r.role_id and r.name='ROLE_ADMIN' ")
.setResultTransformer(Transformers.aliasToBean(Employee.class))
.list();
मैं कर्मचारी firstName कहा जाता है में एक संपत्ति है, लेकिन जब एक इकाई परीक्षण में दाव ऊपर भागने की कोशिश कर, मैं निम्नलिखित अपवाद प्राप्त कर रहा हूं:
org.hibernate.PropertyNotFoundException: Could not find setter for firstname on class com.app.domain.Employee
मुझे नहीं पता कि इस प्रथम नाम संपत्ति से हाइबरनेट कहां से मिलता है? मैंने अपनी क्वेरी में यह सही नहीं किया?
किसी भी तरह से वैकल्पिक हल FirstName के लिए संपत्ति, और ही टिककर खेल बदलने के लिए था, setters भी लेकिन किसी भी विचार क्यों हाइबरनेट इस तरह के व्यवहार कर रहा है, और यह कैसे से बचने के लिए, के बाद से मैं अपने डोमेन CamelCase का उपयोग करना चाहते, कृपया सलाह ।
addScalar + क्वेरी में भी चुनें? –
मुझे ऐसा लगता है, क्योंकि 'asScalar() 'का उपयोग करके' चयन करें 'के बिना मुझे त्रुटियां मिलेंगी। –