jjzjj

javax.persistence.NoResultException : No entity found for query

coder 2023-05-14 原文

在我发布这个问题之前,我已经看过 this ,但我找不到我要找的东西。

我知道我写的查询可能只存在一行或根本不存在。所以,我没有理由使用 getResultList()

这是我的代码:

String hql="from DrawUnusedBalance where unusedBalanceDate= :today";
Query query=em.createQuery(hql);
query.setParameter("today",new LocalDate());

DrawUnusedBalance drawUnusedBalance= 
    (DrawUnusedBalance)query.getSingleResult();// we can have only a
                                               // single datum per day
//`System.out.println(drawUnusedBalance.toString());`

问题是,如果没有行,它会抛出异常,如果没有,它可以正常工作。我知道这个问题,但我也在寻找最好的解决方案。

我想要的是,如果数据库中没有行,我想获取一个空对象(而不是获取异常),所以我将插入一个新数据,如果它不为空,我只想更新它.

有一种方法可以解决这个问题,我认为这不是正确的方法。它是:我将有一个 try-catch block ,如果它引发异常,我可以写入将新数据插入到 catch block 上的数据库中。但我相信会有更好的方法。

最佳答案

是的。您需要使用 try/catch block ,但不需要捕获 Exception根据 API如果没有结果,它会抛出 NoResultException,这取决于你想如何处理它。

DrawUnusedBalance drawUnusedBalance = null;
try{
drawUnusedBalance = (DrawUnusedBalance)query.getSingleResult()
catch (NoResultException nre){
//Ignore this because as per your logic this is ok!
}

if(drawUnusedBalance == null){
 //Do your logic..
}

关于javax.persistence.NoResultException : No entity found for query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8138458/

有关javax.persistence.NoResultException : No entity found for query的更多相关文章

  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

随机推荐