0
我一直在使用项目的动态查询。将strint转换为liferay动态查询中的整数
这是我遇到的问题。
对于XYZ列version
表存储为varchar
(我知道这是一个糟糕的设计,但它现在已经太晚了改变),并具有值9,12
。
对于查询:
select max(version)
from xyz
where something = 'abc';
我正在输出的9代替12.
的动态查询的相同是:
ClassLoader classLoader = PortletBeanLocatorUtil.getBeanLocator(ClpSerializer.getServletContextName()).getClassLoader();
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(xyz.class, classLoader);
dynamicQuery.setProjection(ProjectionFactoryUtil.max("version"));
dynamicQuery.add(PropertyFactoryUtil.forName("something").eq("abc"));
List<Object> list = xyzLocalServiceUtil.dynamicQuery(dynamicQuery);
即给予该查询正确的值是:
select max(cast(version as signed))
from xyz
where something = 'abc';
现在,我希望它在动态查询中,我该怎么做?
我使用的Liferay-6.2-CE
这工作绝对是对我很好:)非常感谢:) –