问题标签 [hibernateexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 如何知道哪个实体导致了 SQL Exception
我正在使用带有 spring 的 hibernate 来创建一个宁静的服务应用程序。我想在操作失败时返回错误消息。例如,在创建帐户时,如果检测到重复的主键,我想设置用户名不可用的消息。
所以使用stacktace我可以看到内部异常是
但是当我尝试获取时cve.getConstraintName()
,它返回null。(cve.getConstraintName()
是 1062)
有什么办法可以得到我正在寻找的食物吗?
作为参考,这是完整的堆栈跟踪:
hibernate - 导致 HibernateException 的多个数据源?
对于我的 grails 项目,我的大多数类都有一个内存中的 h2 数据库,但只是为所有与用户相关的类添加了一个持久性数据库。启动时,应用程序执行多个线程。添加第二个数据源后,我得到了 HibernateExceptions。具体来说,
它们只发生在前一个或两个线程上,然后其余的线程毫无问题地执行。这让我相信这是数据库首次启动时的某种并发问题。发生错误的代码是:
我不知道这是数据库问题、休眠问题还是其他问题。运行 Grails 2.0.4
完整的堆栈跟踪:
我的数据源:
hibernate - HIbernate StaleObject 异常在一个线程上连续出现
在我们的一个生产环境中,我们在线程首次出现后不断地在线程上获得 hibernatestaleobject 异常。这一直持续到我们重新启动服务器。
环境:oracle 10g,WAS 6.1,Hibernate 2.1
堆栈跟踪如下。
我们无法在任何其他环境中模拟这一点。
代码片段:
sql - HibernateException:命名查询中的错误
运行特定的单元测试时,出现异常:
对于此处定义的命名查询:
经过尽可能深入的调试,我发现异常发生在 QueryTranslatorImpl 的 w.statement(hqlAst) 中:
我的查询或注释有问题吗?
java - Postgres 中止事务并忽略查询,直到事务结束,是否可以在事务回滚之前处理事务?
我正在尝试改进 Java/Postgres 应用程序中的错误处理,并且经常发生的错误是输入对于具有固定长度的列来说太长了。发生这种情况时我回滚事务,但在回滚完成之前,我试图找到一种方法来确定哪一列违反了长度限制,以使调试此错误更容易和更有效。
我的方法是:
- 查询
informationschema.columns
获取报错信息中显示长度的所有列名 - 查询步骤 1 中返回的每一列以检查长度约束
但是,当我尝试查询信息架构时,我收到此错误:
有没有办法在这个事务上仍然运行来自 java 的查询,或者有没有更好的方法来检索违反其长度限制的列?
java - EntityNotFoundException:已删除的实体传递给持久化
我尝试删除表中的一行:
我的页面:
我做了一个方法patientCardMB.delete()
:
患者卡DAo.delete:
实体患者卡:
当我尝试删除时,出现此错误:
警告:DTX5014:在 beforeCompletion() 回调中捕获异常:javax.persistence.EntityNotFoundException:已删除的实体传递给持久化:org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:621) 处的 [pl.ePrzychodnia.model.PatientCard#] ) at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:532) at com.sun.enterprise.transaction.JavaEETransactionImpl.commit(JavaEETransactionImpl.java:435) at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit (JavaEETransactionManagerSimplified.java:855) 在 com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4901) 在 com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5136)。 ejb.containers.BaseContainer。postInvoke(BaseContainer.java:2045) 在 com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1994) 在 com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:222) 在 com.sun .ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:89) 在 com.sun.proxy.$Proxy203.delete(Unknown Source) 在 pl.ePrzychodnia.mb.PatientCardMB.delete(PatientCardMB.java:102) 在 sun。 reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke( Method.java:601) 在 javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779) 在 javax.el.BeanELResolver.invoke(BeanELResolver.java:528) 在 javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257) 在 com.sun.el.parser.AstValue.invoke(AstValue.java:248) ) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke( MethodBindingMethodExpressionAdapter.java:88) 在 com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 在 javax.faces.component.UICommand.broadcast(UICommand.java:315) 在 javax.faces.component.UIData .broadcast(UIData.java:1093) 在 javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) 在 javax.faces.component.UIViewRoot。processApplication(UIViewRoot.java:1259) 在 com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 在 com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 在 com.sun .faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550 ) 在 org.apache.catalina.core.StandardPipeline 的 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 的 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)。 doInvoke(StandardPipeline.java:655) 在 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 在 org.apache.catalina.core.StandardHostValve。在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 在 com.sun 在 org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) 调用(StandardHostValve.java:161) .enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 在 com.sun.grizzly .http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) 在 com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056 ) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 在 com.sun 的 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)。com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 上的 grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) .sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 在 java.lang.Thread.run(线程.java:722)sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool$Worker .run(AbstractThreadPool.java:513) 在 java.lang.Thread.run(Thread.java:722)sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool$Worker .run(AbstractThreadPool.java:513) 在 java.lang.Thread.run(Thread.java:722)grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java: 722)grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java: 722)
59) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool $Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722) 原因:javax.transaction.RollbackException:事务标记为回滚。在 com.sun.enterprise.transaction.JavaEETransactionImpl.commit(JavaEETransactionImpl.java:473) 在 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit(JavaEETransactionManagerSimplified.java:855) 在 com.sun.ejb.containers.BaseContainer.completeNewTx (BaseContainer.java:5136) ... 51 更多原因:javax.persistence.EntityNotFoundException:已删除的实体传递给持久化:org.hibernate.ejb 的 [pl.ePrzychodnia.model.PatientCard#]。
我现在不知道为什么我有这个错误。早些时候我确实删除了一个类似的实体,并且所有的工作。
hibernate - 提取导致 ConstraintViolationException 的字段名称
如何获得字段名称导致org.hibernate.exception.ConstraintViolationException
?检查唯一约束的唯一可靠方法是事务提交,所以即使我在抛出异常之前检查它。所以我需要与用户女巫领域沟通,导致保存问题。
详细的消息或多或少是技术性的,用户不能接受。它还取决于数据库驱动程序:( IMO字段名称就足够了,我可以从对象中获取有问题的值。还有我可以准备的其他信息......但是字段名称。
mysql - 在 ConstraintViolationException 导致 AssertionFailure 之后,Hibernate 会话无法查询
我正在通过 Hibernate 对从文件到 MySQL 的记录进行批处理。我正在尝试遍历记录并保存它们,在 ConstraintViolationException 上我正在尝试更新 catch 子句中的记录。一些如何通过 AssertionFailure Exception 失败。
我必须使用 Sessions 而不是 StatelessSessions。
这是堆栈跟踪:
hibernate - Hibernate - 如何捕获“完整性约束违规:唯一约束或索引违规”
在我的表中,我有一个独特的约束。在休眠中,当我添加一个违反该约束的项目时,我想抓住它,所以它将更新而不是创建一个项目。
当我没有设置 try-catch 块时
它得到以下错误
当我设置以下 try-catch 块时
它得到以下错误
当我捕捉到“ConstraintViolationException”时,我只是不断地得到约束异常,它没有捕捉到任何东西。
我怎么能抓住这个?
java - org.hibernate.QueryException:无法解析属性:文件名
我正在使用 Hibernate从表中Criteria
的列中获取值。filename
contaque_recording_log
但是当我得到结果时,它会抛出一个异常
org.hibernate.QueryException:无法解析属性:文件名:com.contaque.hibernateTableMappings.contaque_recording_log
我的表豆是:
我的 hibernateUtil 类从我得到休眠会话的地方:
我从表中获取数据的方法:
如果我打印criteria.toString()
,则 O/P 为:
我哪里出错了,如何从我的表中获取数据?