0
私はプロジェクトに対して動的クエリを使用しています。生命の動的クエリでは、Strintを整数にキャストする
ここで私は問題に直面しているシナリオです。コラムversion
XYZ表について
varchar
(私はそれが悪いデザインだけど、それは今変更するには遅すぎるのです)と
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);
与えているクエリ:同じのための動的なクエリである代わりに、12
の9として、私は出力を取得しています
select max(version)
from xyz
where something = 'abc';
正しい値は次のとおりです。
select max(cast(version as signed))
from xyz
where something = 'abc';
今、動的クエリに入れたいのですが、どうすればいいですか?私はLiferayの-6.2-CE
これはたくさん感謝:)私のために絶対にうまく働いた:):あなたのケースでは
次のコードを試してみてください –