如何为查询创建标准hibernate(len(),PATINDEX(),replace)

时间:2015-12-29 04:33:22

标签: java hibernate

我有hql查询:

... WHERE len(p.sms.message) - len(replace(p.sms.message,:message1,'')) = 1 AND PATINDEX('%[0-9]%',replace(p.sms.message,:message1,'')) = 0"

我需要改变标准hibernate,如:

criteria.add(Restrictions.eq("field", field));

怎么做?

或者我需要通过正则表达式^[^0-9]*[0][^0-9]*$检查字符串,但我使用的是MSSQL。我可以在休眠状态下进行吗?

1 个答案:

答案 0 :(得分:1)

您可以使用sqlRestriction

criteria.add(Restrictions.sqlRestriction(...));

任何出现的{alias}都会被表别名替换。