java - hibernate 条件来获取记录?

标签 java mysql hibernate

我在表中有以下记录。

    col1  col2  col3
------------------------
    1     Abc    IN
    2     DEF    CA
    3     Xyz    IN
    4     Cae    CA
    5     Pty    IN
    6     Zwe    DE
    7     Zwf    US

用户在这里发送一个输入,比如 INCADE 等。用户输入必须映射到 col3.现在我需要从表中查询所有记录,但匹配用户输入的记录(INCADE) 应该首先出现在列表中,然后所有其他记录应该出现。我怎样才能使用 hibernate 标准来做到这一点?

如果用户发送 IN 作为输入,我需要顺序以下的结果。

    1     Abc    IN
    5     Pty    IN
    3     Xyz    IN
    2     DEF    CA
    4     Cae    CA
    6     Zwe    DE
    7     Zwf    US

最佳答案

您可以尝试使用 ORDER BY CASE 结构:

order by case when <your entity>.col3 = :parameter then '0' else '1' end asc

关于java - hibernate 条件来获取记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256280/

相关文章:

java - 用索引迭代 IntStream

mysql - mysql中的分区

mysql - 我没有得到以下 sql 批处理文件的输出文件

mysql - 是否有更好/更简洁的方式来编写此查询?

java - 如何通过Spring Boot API获取特定字段

java - 延迟加载子项,其中包含急切的集合

mysql - 带 case + union + like 的 where 子句中的未知列

JavaFx 嵌入 Swing JDesktopPane 不显示任何内容

java - Spring是否通过Java Config的方法名称 Autowiring

java DOM LookupNamespaceURI 无法定位命名空间 URI