Hibernate在一个查询中选择相关数据

时间:2013-10-01 19:22:35

标签: mysql sql hibernate select hql

我是Hibernate的新手。 这是一个User

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

这是我的样本数据

+----+-------+------+------+
| id | name  | age  | sex  |
+----+-------+------+------+
|  1 | Amit  |   20 | M    |
|  2 | Sumit |   21 | M    |
|  3 | Mohan |   22 | M    |
|  4 | Ram   |   26 | M    |
|  5 | John  |   22 | M    |
|  6 | Sita  |   19 | F    |
+----+-------+------+------+

这些是我的疑问:

select id from User where name="Amit" and age=20;
select id from User where name="Ram" and age=26;
select id from User where name="Mohan" and age=22;
select id from User where name="Sita" and age=19;

我可以通过运行4个查询在休眠中执行此操作。 有什么方法可以在一个查询中执行此操作吗? 请告诉我同样可以在mysql中完成。 请帮忙。任何线索,链接或参考都是值得注意的。 谢谢。

2 个答案:

答案 0 :(得分:2)

你可以这样做

select  id , name ,age , sex from User 
where (name,age) IN (('Amit','20'),('Ram', '26'),('Mohan', '22'),('Sita', '19'));

DEMO HERE

答案 1 :(得分:1)

在sql ...

select name, id from User where ( name="Amit" and age=20)
                             or ( name="Ram" and age=26 )
                             or ( name="Mohan" and age=22 )
                             or ( name="Sita" and age=19 )