gpt4 book ai didi

jpa - Internal Exception : java. sql.SQLException : Invalid state, 连接对象被关闭

转载 作者:行者123 更新时间:2023-12-04 23:18:12 35 4
gpt4 key购买 nike

我有一个使用 Eclipse Persistence Services 的 JSF 应用程序 - 2.1.1.v20100817-r8050,我有时会收到以下错误:

Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.1.1.v20100817-r8050):    org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Invalid state, the Connection object is closed.
Error Code: 0
Call: SELECT XXXXX FROM XXXXX
bind => [/Home/Footer/]
Query: ReadAllQuery(name="WWW.find" referenceClass=WWW sql="SELECT XXXXX FROM XXXXX")

我不知道是什么原因造成的。在“return q.getResultList();”的以下函数中抛出异常。行。

public List<WWW> find(String url) {
}
EntityManager em = getEntityManager();
try {
Query q = em.createNamedQuery("WWW.find");
q.setParameter("url", url);
return q.getResultList();
} finally {
em.close();
}
}

我们有 SQL Server 2005,数据库没有停机。这更多是最近发生的事情。下面是我们在 persistence.xml 文件中设置的属性。对此应该更改什么有任何意见吗?

<properties>
<property name="javax.persistence.jdbc.password" value="password"/>
<property name="javax.persistence.jdbc.user" value="user"/>
<property name="javax.persistence.jdbc.driver" value="net.sourceforge.jtds.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:jtds:sqlserver://SERVER:1433/DB"/>
<property name="eclipselink.ddl-generation" value="none"/>
<property name="eclipselink.jdbc.timeout" value="20"/>
<property name="eclipselink.jdbc.connections.wait-timeout" value="20"/>
<property name="javax.persistence.query.timeout" value="20"/>
<property name="eclipselink.allow-zero-id" value="true"/>
</properties>

这是我编辑的类(class) 公共(public)类 WWWJpaController {

public WWWWJpaController() {
emf = Persistence.createEntityManagerFactory("properties");
}

public WWWWJpaController(String unitName) {
emf = Persistence.createEntityManagerFactory(unitName);
}

private EntityManagerFactory emf = null;

public EntityManager getEntityManager() {
return emf.createEntityManager();
}

public List<WWW> find(String url) {
EntityManager em = getEntityManager();
try {
Query q = em.createNamedQuery("WWW.find");
q.setParameter("url", url);
return q.getResultList();
}finally{
em.close();
}
}

}

最佳答案

我的猜测是您的数据库连接超时,或者您的数据库已关闭。您可能需要重试查询,或重新连接您的 session 。

您如何配置连接池以及您使用的是什么数据库?

关于jpa - Internal Exception : java. sql.SQLException : Invalid state, 连接对象被关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845545/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com