【问题标题】:org.hibernate.exception.SQLGrammarException: could not execute statement on different weblogic serverorg.hibernate.exception.SQLGrammarException:无法在不同的 weblogic 服务器上执行语句
【发布时间】:2021-08-10 12:21:08
【问题描述】:

我的应用程序中有一个简单的创建查询。(Spring 5.2.10 + Hibernate 5.4.3.1 + Weblogic 12c)

它在我的本地 weblogic 服务器上运行良好,但刷新时在另一个 weblogic 服务器上出错。他们使用相同的数据源。

org.hibernate.exception.SQLGrammarException: could not execute statementjavax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
    at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1366)
    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1349)
    at com.thy.dao.impl.BaseDAOImpl.create(BaseDAOImpl.java:46)

我尝试配置 weblogic.xml 首选应用程序包,如下所示,仍然无法正常工作。

<wls:prefer-application-packages>
            <wls:package-name>javax.persistence.*</wls:package-name>
            <wls:package-name>org.hibernate.*</wls:package-name>
        </wls:prefer-application-packages>
</wls:container-descriptor>

【问题讨论】:

  • 当您不显示使用失败的 SQL 查询时,我们如何帮助您?另外,您在这两种情况下都使用相同的数据库吗?
  • 我不能共享查询,因为公司限制,它只是 session.persist(entity); session.flush();
  • 我假设您不使用相同的数据库架构
  • 在 SQLGrammarException 的堆栈跟踪中应该有原因。如果您无法共享查询和异常,您能否更改名称以保持一致性并告诉我们类似的查询?

标签: java hibernate weblogic12c


【解决方案1】:

我找到了解决办法,sql语法没有错误。问题与数据库端的存储过程/函数有关,该存储过程/函数通过新的插入触发。堆栈跟踪不包含此异常,我在 weblogic 日志中找到它。

【讨论】:

    猜你喜欢
    • 2013-06-28
    • 2014-01-01
    • 1970-01-01
    • 2022-11-09
    • 2016-10-15
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多