gpt4 book ai didi

javax.persistence.NoResultException : getSingleResult() did not retrieve any entities

转载 作者:太空狗 更新时间:2023-10-29 22:48:35 25 4
gpt4 key购买 nike

我用 ejb 创建了一个命名查询来检查用户名是否被使用。当 singleResult 为 null 时,我得到以下异常:

javax.persistence.NoResultException: getSingleResult() did not retrieve any entities

但是这个异常是我想要的用户名空闲时的结果。

代码如下:

 public User getUserByUsername(String username) throws DAOException{
try{
Query q = em.createNamedQuery(User.getUserByUsername);
q.setParameter("username", username);
return (User) q.getSingleResult();
}catch(Exception e){
throwException(username, e);
return null;
}
}

有人知道问题出在哪里吗? :(

我想返回 null 并且不要得到异常。

非常感谢

最佳答案

您似乎使用语句 throwException(username, e); 在 catch block 中重新抛出异常。如果您希望无一异常(exception)地获得用户或 null,这应该如下所示:

public User getUserByUsernameOrNull(String username) {
try{
Query q = em.createNamedQuery(User.getUserByUsername);
q.setParameter("username", username);
return (User) q.getSingleResult();
} catch(NoResultException e) {
return null;
}
}

关于javax.persistence.NoResultException : getSingleResult() did not retrieve any entities,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2613113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com