2014-06-21 157 views
3

我有在service.xml中定義見下文服務實體:在Liferay中面對異常:org.hibernate.QueryException:無法解析屬性

<entity name="LoginData" local-service="true" remote-service="false"> <!-- PK fields --> <column name="userId" type="long" primary="true" /> <column name="loginDate" type="Date" primary="true" /> </entity>

,我試圖獲取使用dynamicQuery爲行在LocalServiceImpl類中定義。

DynamicQuery dynamicQuery=DynamicQueryFactoryUtil.forClass(LoginData.class); dynamicQuery.add(RestrictionsFactoryUtil.eq("userId", userId)); dynamicQuery.add(RestrictionsFactoryUtil.between("loginDate", startDate, endDate)); return (List<LoginData>)LoginDataLocalServiceUtil.dynamicQuery(dynamicQuery);

但在上面的代碼中最後一行拋出異常,如

Caused by: org.hibernate.QueryException: could not resolve property: userId of: com.example.model.impl.LoginDataImpl

有人能告訴我這裏有什麼問題?或者我錯過了什麼?

回答

4

您必須將其編寫爲 primaryKey.userId,因爲您已將userid定義爲主鍵,因此hibernate希望使用primaryID的userid前綴。

+0

謝謝@Danish,它工作。 loginDate也需要primaryKey作爲前綴。 –

相關問題