Обнаружение исключения в Liferay: org.hibernate.QueryException: не удалось разрешить свойство

У меня есть сервисный объект, определенный в service.xml, как показано ниже:

<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

Может кто-нибудь сказать мне, что здесь не так? ИЛИ я что-то пропустил?


person Pankaj Kathiriya    schedule 21.06.2014    source источник


Ответы (1)


Вы должны написать его как primaryKey.userId, поскольку вы определили идентификатор пользователя как первичный ключ, поэтому спящий режим ожидает префиксы идентификатора пользователя с primaryKey.

person Danish    schedule 21.06.2014
comment
Спасибо @Danish, это сработало. loginDate также требует в качестве префикса primaryKey. - person Pankaj Kathiriya; 22.06.2014