如何使用条件从数据库中过滤记录

时间:2016-12-09 22:51:01

标签: java hibernate

我有一个Hibernate DAO方法,它返回所有用户。

public List<User> getAllUsers() {
    Session session = sessionFactory.getCurrentSession();
    Query query = session.createQuery("from com.model.User");
    List<User> users = query.list();
    session.flush();
    return users;
}

User实体具有profession属性。我想只查询其职业等于Developer的用户。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

为什么不使用JAVA8 Streams来解决您的问题?

假设您正在检索用户列表,如下所示:

Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("from com.model.User");
List<User> users = query.list();

现在,按此专业过滤:

users = users.stream().
     filter(user -> user.getProfession.equals("Developer")).collect(Collectors.toList());