我有一個SQL查詢中沒有駝峯如下:使用ResultTransformer與createSQLQuery迫使實體領域
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員工的屬性,而是試圖上面DAO在單元測試中運行時,我我得到以下異常:
org.hibernate.PropertyNotFoundException: Could not find setter for firstname on class com.app.domain.Employee
我不知道hibernate從這個firstname屬性獲取的位置?我沒有在我的查詢中正確嗎?
任何方式解決方法是改變名字的財產,和getter,setter方法也 但任何想法,爲什麼Hibernate是作出這樣的行爲,以及如何避免它,因爲我想在我的域名使用駝峯,請指教。
addScalar + select在查詢中也是如此? –
我認爲是這樣的,因爲只有在沒有'select as'的情況下使用'addScalar()'纔會給我帶來錯誤。 –