【发布时间】:2017-05-29 09:41:42
【问题描述】:
我正在开发一个网络应用程序。 WildFly 8.1、SQL Server 2012 我在本地环境中遇到问题,即使数据库的代码和状态与预生产相同,但一切正常。
1) 我刚刚从预生产数据库恢复了我的数据库,所以数据库是相同的。
2) 我检查了预生产中使用的相同变更集。所以代码是一样的。
有一个功能可以让我对数据库进行本机 SQL 查询。
select IIF(number.accountnumber is not null,number.accountnumber,def.accountnumber)
from salesaccountnumber def
left join salesaccountnumber number on
number.fk_service = def.fk_service
and number.pricetitle= 'STARTINGPRICE'
where def.pricetitle = 'STARTINGPRICE'
and def.fk_service = 2
当我在 SQL Management Studio 中执行上面提到的查询时,它工作得很好。
在所有其他开发人员的环境和预生产环境中,它都按预期工作,但在我的开发环境中,数据库的代码和状态与其预生产等效项相同,当从该查询中获取单个结果时,我得到以下异常:
12:16:44,934 ERROR [my.project.BillingAction] (default task-59) [SESSION=Gvo7TGbOw4nIPo6p_WphSUrn]Could not build/send INVOICE out of bill : javax.persistence.PersistenceException: org.hibernate.HibernateException: Provider is closed!
12:16:44,935 ERROR [stderr] (default task-59) javax.persistence.PersistenceException: org.hibernate.HibernateException: Provider is closed!
与预生产相比,我在本地环境中没有其他问题。
我们之前没有人见过这个异常,所以,有什么想法可以从哪里开始寻找解释?
【问题讨论】:
-
从异常看来,hibernate 无法获得与数据库的连接。
-
@coolgirl,这很奇怪,因为数据库连接在应用程序的其他任何地方都没有问题。
-
如果您使用 EJB,您的
persistence.xml文件中是否有此内容?它应该完全在一行<provider>org.hibernate.ejb.HibernatePersistence</provider> -
我会试试的。我在 persistence.xml 中没有该行,但该文件在存储库中,其他开发人员没有这个问题。
标签: java sql-server hibernate persistence wildfly-8