我正在使用entitymanager执行查询,但得到java.lang.illegalstateexception:session/entitymanager在负载测试时关闭。
@PersistenceContext(name = "appEntityManager", type = PersistenceContextType.EXTENDED)
private EntityManager entityManager;
public List<Map<String, Object>> runQuery(String query, Map<String, Object> args) {
List<Map<String, Object>> result = null;
try (Session session = entityManager.unwrap(Session.class)) {
Query hqlQuery = session.createNativeQuery(query)
.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
if (MapUtils.isNotEmpty(args)) {
for (Map.Entry<String, Object> entry : args.entrySet()) {
hqlQuery.setParameter(entry.getKey(), entry.getValue());
}
}
result = hqlQuery.list();
} catch (Exception e) {
LOGGER.error("Exception while runQuery method {}", query, e);
}
return result;
}
我尝试在没有type=persistencecontexttype.extended的情况下使用transactional on方法,但它不起作用。我将jmeter用于以下配置:线程数:100爬升时间:10s循环计数:1
我怎样才能避免这个例外?
暂无答案!
目前还没有任何答案,快来回答吧!