如何在休眠中创建此查询:
SELECT * FROM `entity` WHERE length(word) > 2 and length(word) < 6;
我试过这个,但失败了..
- List<Criterion> criterions = new ArrayList<>();
- criterions.add(Restrictions.sizeGt("word", 2));
- criterions.add(Restrictions.sizeGt("word", 6));
这个问题有 5 年历史,有 1k 次浏览,没有正确答案?
原始海报提供的代码示例不正确。
要具有值长度限制length(word) < 6
,您必须使用sizeLt:
List<Criterion> criterions = new ArrayList<>();
criterions.add(Restrictions.sizeGt("word", 2));
criterions.add(Restrictions.sizeLt("word", 6));
最简单的 Hibernate 查询形式如下:
from eg.Cat
这将返回类的所有实例eg.Cat
。您通常不需要限定类名,因为自动导入是默认设置。例如:
from Cat
为了在查询的其他部分引用 Cat,您需要分配一个别名。例如:
from Cat as cat
此查询将别名 cat 分配给 Cat 实例,因此您可以稍后在查询中使用该别名。as 关键字是可选的。你也可以写:
from Cat cat
可以出现多个类,从而产生笛卡尔积或“交叉”连接。
from Formula, Parameter
from Formula as form, Parameter as param
使用首字母小写来命名查询别名是一种很好的做法,因为这与局部变量的 Java 命名标准(例如,domesticCat)是一致的。