【问题标题】:How to create query use length(string) in hibernate如何在休眠中创建查询使用长度(字符串)
【发布时间】:2015-06-08 09:30:32
【问题描述】:

如何在休眠中创建这个查询:

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));

【问题讨论】:

标签: hibernate criterion


【解决方案1】:

这个问题有 5 年历史,有 1k 次浏览,没有正确答案?

原发帖人提供的代码示例不正确。

要限制值长度 length(word) &lt; 6 你必须使用 sizeLt

List<Criterion> criterions = new ArrayList<>();
criterions.add(Restrictions.sizeGt("word", 2));
criterions.add(Restrictions.sizeLt("word", 6));

【讨论】:

    【解决方案2】:

    最简单的 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 命名标准(例如 homeCat)是一致的。

    【讨论】:

    • 你能给我这个查询使用休眠标准的示例代码吗? SELECT * FROM entity WHERE length(word) > 2 and length(word)
    • 这个答案没有试图解释如何根据字符串的长度制定标准
    猜你喜欢
    • 2012-01-24
    • 2010-10-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多