session/entitymanager在使用persistencecontext时关闭

n3ipq98p  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(315)

我正在使用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
我怎样才能避免这个例外?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题