java - Hibernate 标准选择值是列值的前 5 个字符的所有行

标签 java hibernate criteria

我有带有字段的实体:str 和表

str
12345675678
56334567676
46746764764
67345243524

我需要编写条件查询并选择 str 包含我的值的所有行。我的值始终是 str 的前 5 个字符。

if value= "56334"我需要返回56334567676

if value= "12345"我需要返回12345675678

我尝试了Restrictions.like,但它没有为我的行提供资金。

value= "56334";
Criteria criteria = getSession().createCriteria(MyEntity.class);
criteria.add(Restrictions.like("str", value));
return criteria.list();

如果是 native 选择,它看起来像:

SELECT * FROM MyEntity t WHERE t.str LIKE '%12345%' // this select return success result. but my criteria return 0

最佳答案

尝试这样的事情:

criteria.add(Restrictions.like("str", value, MatchMode.START));

MatchMode documentation

关于java - Hibernate 标准选择值是列值的前 5 个字符的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42431788/

相关文章:

java - 在每次请求时刷新 session 中存储的用户帐户对象的最佳方法

java - 延迟加载在 spring data jpa 一对多双向映射中不起作用

jpa - 如何将集合/列表设置为 JPA 条件查询的命名参数?

带投影的 hibernate where 子句

java - ArrayList 作为 HashMap 中的键

java - 嵌套或顺序异常处理?

java - 如何使用 JSTL 在 jsp 页面中迭代 ArrayList<HashMap<String, String>>

java - 如何避免 Hibernate Validator ConstraintDeclarationException?

grails - 任何想法,如何避免if语句在这里

java - 使用 GridBagLayout 调整大小时防止组件散开