Hibernate标准来获取记录?

时间:2015-03-25 12:54:47

标签: 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

此处用户发送输入,如 IN CA DE 等。用户输入必须映射到 col3 。现在我需要从表中查询所有记录,但是匹配用户输入的记录( IN CA DE )应首先出现在列表中,然后应显示所有其他记录。我怎么能用hibernate标准来做呢?

如果用户将 IN 作为输入发送,我需要在订单下方显示结果。

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

有两种方法可以解决这个问题:
1.在单个列表中创建两个查询,一个与另一个不相等,并且所有结果都相同 2.如果您不想两次查询数据库,那么您必须在java中编写algo,它将从列表中删除输入元素并将其添加到另一个列表中,并在迭代后添加剩余列表。

答案 2 :(得分:0)

尝试case ... when语句:

select *, ( case when col3=:input then '0' | col3 else col3 end) as sorter from table order by sorter asc

不确定,如果有效,但如果确实如此,那就完全是你想要的