0
我得到了一个Spring Web应用程序与休眠。我几乎完成了开发工作,并且正在进行一些压力测试,以了解如果很多用户同时在同一页面上连接,会发生什么情况。休眠会话/ EntityManager关闭压力测试
我一定是做错了什么事在我的Hibernate的配置和/或代码,因为我得到这些错误:
formatedMessage : Session is closed!
Message : Session is closed!
Erreur : java.lang.IllegalStateException: EntityManager is closed
stacktrace : java.lang.IllegalStateException: EntityManager is closed
[...]
formatedMessage : EntityManager is closed
Message : EntityManager is closed
SQL Error: 0, SQLState: 55000
Ce statement a été fermé.
Erreur : org.hibernate.exception.GenericJDBCException: could not extract ResultSet
stacktrace : org.hibernate.exception.GenericJDBCException: could not extract ResultSet
[...]
Caused by: org.postgresql.util.PSQLException: Ce statement a été fermé.
下面是代码:
public class Application
{
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "application_seq_gen")
@SequenceGenerator(name = "application_seq_gen", sequenceName = "application_id_seq",initialValue = 1, allocationSize = 1)
private int id;
private String nom;
private Boolean autorise; //Autorise la validation automatique de l'application
private String domaineFonctionnel;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="applicationMail")
@Column(name="mail")
private Set<String> listMail;
[...]
}
public ArrayList<Application> getListApplication() {
entityManager = entityManagerFactory.createEntityManager();
Session session = entityManager.unwrap(Session.class);
Criteria criteria = session.createCriteria(Application.class);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
ArrayList<Application> listApplication = new ArrayList<Application>();
listApplication.addAll(criteria.list());
entityManager.close();
return listApplication;
}
有人知道这个问题是在这里什么?
也许您因连接限制而导致数据库连接不足? – Rjiuk
另外你为什么使用EntityManagerFactory?你有很好的理由吗?如果没有,尝试@PersistanceContext它应该可以解决你的问题。 – Rjiuk
我会检查你的答案,我会回来后,谢谢你的意见;) –