From 5b30d36b2e68f7db54fb4a99cfdbaf2fac24970a Mon Sep 17 00:00:00 2001 From: stsypanov Date: Sat, 7 Jul 2018 00:03:00 +0300 Subject: [PATCH] add benchmark for https://jira.spring.io/browse/DATAJPA-1370 --- .../sequence/QueryValidationBenchmark.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 benchmark-runners/src/main/java/com/luxoft/logeek/benchmark/sequence/QueryValidationBenchmark.java diff --git a/benchmark-runners/src/main/java/com/luxoft/logeek/benchmark/sequence/QueryValidationBenchmark.java b/benchmark-runners/src/main/java/com/luxoft/logeek/benchmark/sequence/QueryValidationBenchmark.java new file mode 100644 index 0000000..3f42e45 --- /dev/null +++ b/benchmark-runners/src/main/java/com/luxoft/logeek/benchmark/sequence/QueryValidationBenchmark.java @@ -0,0 +1,43 @@ +package com.luxoft.logeek.benchmark.sequence; + +import com.luxoft.logeek.benchmark.ContextAwareBenchmark; +import org.openjdk.jmh.annotations.*; + +import javax.persistence.EntityManager; +import java.util.concurrent.TimeUnit; + +@State(Scope.Thread) +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.NANOSECONDS) +public class QueryValidationBenchmark extends ContextAwareBenchmark { + + private EntityManager entityManager; + + @Setup + public void init() { + super.init(); + entityManager = context.getBean(EntityManager.class); + } + + @Benchmark + public Object measureQuery() { + return validateQueryDefault(); + } + + private Object validateQueryDefault() { + EntityManager validatingEm = null; + + try { + validatingEm = entityManager.getEntityManagerFactory().createEntityManager(); + return validatingEm.createQuery("select r from CpyEntity r "); + + } catch (RuntimeException e) { + throw new IllegalArgumentException("", e); + } finally { + if (validatingEm != null) { + validatingEm.close(); + } + } + } + +}