java - 如何为查询创建条件hibernate(len(),PATINDEX(),replace)

标签 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。我可以在 hibernate 状态下执行此操作吗?

最佳答案

您可以使用sqlRestriction

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

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

关于java - 如何为查询创建条件hibernate(len(),PATINDEX(),replace),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34504466/

相关文章:

java - 后续问题 : Using Maven to only sign and deploy jars to Maven Central. 构建和编译完全使用 Ant 完成

hibernate - 从gradle调用hbm2ddl

java - Spring Data Jpa查询结果集到对象创建非常慢

java - Map.merge 不会为 ArrayList 添加值

java - 获取转发后的jsp内容

java.lang.NoClassDefFoundError : Could not initialize class org. Ghost4j.GhostscriptLibrary

java - Spring Data Repository JPA 实体继承问题 : Cannot instantiate abstract class or interface

java - 在 hibernate org.hibernate.hql.internal.ast.QuerySyntaxException 中更新表时

java - Spring Boot 和 Hibernate 多次调用同一个方法

java - 我可以通过 if else/语句声明变量吗