如何写一个' where'使用条件在hibernate中查询

时间:2017-12-09 17:41:23

标签: hibernate criteria

让我考虑一个简单的SQL查询

select username from tbl_customer where username="user" and password="12345";

如何使用条件

在hibernate中编写此查询

感谢。希望得到积极回应..

2 个答案:

答案 0 :(得分:2)

首先你必须创建Criteria对象,然后你需要将where子句条件传递给criteria对象,你必须设置projection属性来选择特定的列数据。

通过查看您的SQL查询,

select username from tbl_customer where username="user" and password="12345";

我相信您想要从表username中获取特定列tbl_customer。这可以使用Projections完成。您必须为所需的列数据设置投影属性。

Criteria criteria = session.createCriteria(MyClass.class)
  criteria.setProjection(Projections.property("username"));
  criteria.add(Restrictions.and(Restrictions.eq("username", user),Restrictions.eq("password", 12345))
);
List<String> userNames = criteria.list();

这将只返回该表中的用户名列数据。

答案 1 :(得分:1)

Criteria criteria = session.createCriteria(Customer.class) 
.add(Restrictions.eq("username", 
"user").add(Restrictions.eq("password","12345")); 

请注意,我确实将Customer的实体名称视为tbl_customer,并且您正确创建了会话。