当isAdmin设置为true时,检索聊天用户

时间:2016-07-23 12:54:54

标签: java spring spring-boot

我正在使用Spring启动开发聊天系统。此时,我需要显示数据库中isAdmin字段设置为false的所有用户。

这是DAO类中getByAdmin的查询:

public User getByAdmin(boolean isAdmin) {
        return (User) getSession().createQuery(
                "from User where isAdmin = :isAdmin")
                .setParameter("isAdmin", isAdmin);
    }

在我的controller.java中,我调用上面的方法来检查admin是否设置为true:

@ResponseBody
    @RequestMapping(value = "/get-all-users", method = RequestMethod.GET)
    public List<User> getAllUsers() {
        try {
            boolean isAdmin = true;
            if(_userDao.getByAdmin(isAdmin).equals(true))
            {
            return _userDao.getAll();
            }
        } catch (Exception e) {
            logger.error("Exception in fetching users: ", e.getStackTrace());
        }
        return null;
    }

这是我对Users.java的bean定义

@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "userId")
    private Long id;
    @Column(nullable = false)
    private String name;
    @Column(unique = true, nullable = false)
    private String email;
    @Column(nullable = false)
    private long timestamp;

    @Column(nullable = true)
    private boolean isAdmin;

这是我正在进行检查的地方,因此没有返回任何内容

try {
            boolean isAdmin = true;
            if(_userDao.getByAdmin(isAdmin).equals(true))
            {
            return _userDao.getAll();
            }

如果我删除上述检查,我将能够看到所有用户

我的挑战是没有回复调用getAllUsers方法。

请问我的逻辑有什么问题?

1 个答案:

答案 0 :(得分:0)

if(_userDao.getByAdmin(isAdmin).equals(true))

您正在将Userboolean进行比较。可能你想检查一下:

if(_userDao.getByAdmin(isAdmin) != null)