如何在整数数据类型的hibernate分离标准中使用LIKE?

kwa*_*_ah 9 java model-view-controller hibernate sql-like

我必须这样做Restrictions.like("sequenceNo", "%" + Integer.valueOf(sequenceNo.trim()) + "%").

该字段sequenceNo是整数类型,但sequenceNo参数值是字符串.我的问题是我得到一个例外java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer.出于某些原因,我真的必须使我的param成为字符串数据类型.当我在SQL中尝试使用LIKE一个整数时,它可以工作.

请帮忙.谢谢.

mai*_*ona 9

您无法为此目的添加Criteria的属性限制,因为在获取期间,指定的属性值将根据Entity类中指定的"字段类型"进行转换.

但是,解决方案是使用SQLRestriction of criteria,通过传递.我已经测试过,这个有效.

yourDetachedCriteriaObj.add(Restrictions.sqlRestriction(" sequenceNo LIKE '%"+yourSequenceNumToSearch+"%' "));
Run Code Online (Sandbox Code Playgroud)

要获得列表,您可以在下面进行操作

List ls = yourDetachedCriteriaObj.getExecutableCriteria(yourSession).list();
// iterate over list or do whatever.
Run Code Online (Sandbox Code Playgroud)