【问题标题】:HIbernate org.hibernate.HibernateException: Errors in named queriesHIbernate org.hibernate.HibernateException:命名查询中的错误
【发布时间】:2014-02-21 14:50:40
【问题描述】:

您好,不明白 namedQuery 的问题

<query name="updtae.payment.paymentDate.by.txn_id">
    <![CDATA[
    update Payment p set p.paymentDate =:payDate WHERE p.txnId=:txnId]]>
</query>

遇到异常 HIbernate org.hibernate.HibernateException:命名查询中的错误

没有与我们实体名称相同的列 它在本地运行良好,但不要在生产服务器上运行

getSession().getNamedQuery("updtae.payment.paymentDate.by.txn_id").setTimestamp("payDate",paymentDate ).setString("txnId", txnId).executeUpdate();

这里是命名查询的调用。

【问题讨论】:

  • 你如何在 Java 代码中调用你的命名查询?请发布更多代码。
  • 在你发布的代码中——getSession().getNamedQuery("updtae.payment.paymentDate.by.txn_id").setTimestamp("payDate",paymentDate ).setString("txnId", txnId).executeUpdate();——你拼错了更新
  • @hd1 更新时的拼写错误在 java 代码以及命名查询中也是如此。所以这不是问题。
  • 对于这种事情,我更喜欢Hibernate的Criteria api,而不是HQL
  • 使用 Criteria min 获取列表并更新循环中的每一行,这在性能方面是不正确的,它看起来像休眠版本问题。问题是我无法在生产服务中更改版本。所有这些在我的本地都可以正常工作

标签: java sql hibernate named-query


【解决方案1】:

我解决了购买更改休眠版本的问题
从休眠版本:3.0.5 到休眠版本:3.2.1.ga

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2019-01-14
    • 1970-01-01
    • 2014-07-02
    • 2013-05-07
    相关资源
    最近更新 更多