草庐IT

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

coder 2023-08-28 原文

我用 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/

有关javax.persistence.NoResultException : getSingleResult() did not retrieve any entities的更多相关文章

  1. ruby HTTPClient : How to use persistent connections? - 2

    如何通过HTTPClient使用持久HTTP连接?发送HTTP请求时是否只是设置KeepAlive的问题?文档指出支持持久连接,但没有告诉我们如何使用它们。 最佳答案 是availableinNet::HTTP如文档中所写,Net::HTTP.startimmediatelycreatesaconnectiontoanHTTPserverwhichiskeptopenforthedurationoftheblock.Theconnectionwillremainopenformultiplerequestsintheblockift

  2. ruby-on-rails - rails 4 : Flash message persists for the next page view - 2

    我在布局中使用以下代码来显示两种类型的即显消息:它们都工作正常,但无论何时触发一个,它仍会出现一次额外的页面View。我没有使用任何缓存gem。为什么会这样?我该如何解决? 最佳答案 使用flash.now而不是flash.flash变量旨在在redirect之前使用,并且它会在一个请求的结果页面上持续存在。这意味着如果我们不redirect,而不是简单的render一个页面,flash消息将持续存在两个请求:它出现在呈现的页面上但仍在等待重定向(即第二个请求),因此如果您单击链接,消息将再次出现。为了避免这种奇怪的行为,在渲染而不

  3. javax 脚本如何从 Java 调用 JavaScript 中的函数 - 2

    我正在尝试通过Java调用JavaScript中的函数。这在直接将脚本作为字符串读取时效果很好,但我使用的是CompiledScripts。当我使用编译脚本执行此操作时,如果我还添加绑定(bind),它会提示找不到方法。没有绑定(bind)它可以工作,但当然函数失败,因为它需要绑定(bind)。有什么想法吗?CompiledScriptscript=...getscript....Bindingsbindings=script.getEngine().createBindings();LoggerscriptLogger=LogManager.getLogger("TEST_SCRIP

  4. javascript - 具有 "persistence token"功能的 Node.js 身份验证库 - 2

    我有passportfornode的工作知识,但它没有以下内容:生成“持久性token”(例如authlogic/session/session.rb#L35为密码重置生成易腐token记住我的功能管理一些模型类的登录/注销属性,等等。Node.js社区中是否有任何库解决了这个问题?如果有任何东西像DeviseforRails一样健壮(或者正在变得健壮),那将是完美的,但任何解决此token问题的方法都同样有效。疯狂的是很多例子都在session中存储用户id!request.session['userId']=user.get('id')那只是要求被黑客攻击。应该是这样的:requi

  5. javascript - Rhino load() 函数在 javax.script 提供的 JavaScript 中可用吗? - 2

    一些为Rhino的shell开发的JavaScript文件使用load()来加载额外的JavaScript文件。我正在尝试使用javax.script从这些RhinoJavaScript文件之一中嵌入功能。不幸的是,javax.script的JavaScript没有实现load()函数。尝试对包含load()的脚本执行eval()时,会发生以下错误:com.sun.script.javascript.RhinoScriptEngine:-1:in`eval':javax.script.ScriptException:sun.org.mozilla.javascript.internal

  6. javascript - Ember 数据 : model and hasMany submodels not persisting - 2

    我有一个类似于thisstackoverflowquestion的问题,除了答案似乎不起作用。我有一个表单,用户可以在其中创建一个包含可变数量子模型的容器模块。提交表单时,我必须保存容器、子模型,并确保hasMany关系持续存在。我的代码(使用Ember-Cli):容器:varContainer=DS.Model.extend({name:DS.attr('string'),submodels:DS.hasMany('submodel'),lastModified:DS.attr('date')});exportdefaultContainer;子模型:varSubmodel=DS.M

  7. JavaScript - bfcache/pageshow 事件 - event.persisted 总是设置为 false? - 2

    在标准的Java/SpringMVC/JSP/jQuery网络应用程序中,我试图检测“返回”(或history.go(-1))事件,以便刷新(AJAX)摘要组件/当我返回页面时面板内容(我们可以在其中更改摘要组件显示的后端数据)。我在JavaScript中尝试了以下方法(在StackExchange上的一些帖子中了解如何实现这一点):$(document).ready(function(){window.onpageshow=function(event){console.log("Event:");console.dir(event);if(event.persisted){aler

  8. session - gorilla / session : Session be managed (persist changes) between handlers? - 2

    我正在使用Gosession管理:"github.com/gorilla/sessions"以下代码的问题在于,与CookieStore关联的session未在处理程序之间共享,我需要它这样做。处理程序"/authorize"将值保存到session中,然后重定向到另一个处理程序"/thankyou",但该处理程序在session中看不到该值.我已验证session在原始处理程序"/authorize"中确实具有新值。import("github.com/gorilla/sessions")var(cookieStore*sessions.CookieStorestoreGUIDstr

  9. xml - 使用 JAXB 时出现 java.net.MalformedURLException : no protocol with javax. xml.stream.XMLStreamException - 2

    我正在使用JAXB解码XML文档。在解析XML时,它会抛出一个用XMLStreamException包装的MalformedURLException。我的理解是在创建XMLStreamReader对象本身时它抛出了异常。有什么建议吗?我使用的代码片段:XMLInputFactoryxif=XMLInputFactory.newFactory();XMLResolverresolver=newXMLResolver();//tocapturesystemID,baseURIetc.xif.setXMLResolver(resolver);//ThrowsMalformedURLExcep

  10. 此上下文已知 javax.xml.bind.MarshalException 及其任何父类(super class) - 2

    我遇到了异常,正在寻找解决方案,我们将不胜感激。在其他一些消息中发现了同样的问题,但它们对我不起作用。请看下面的代码。javax.xml.bind.MarshalException-withlinkedexception:[com.sun.istack.SAXException2:classcom.mycompany.soma.ws.rest.v1.model.test.EmployeeConstructionnoranyofitssuperclassisknowntothiscontext.javax.xml.bind.JAXBException:classcom.mycompany

随机推荐