Comparar Querydsl, jOOQ, JEQUEL, activejdbc, iciql y otras DSL de consulta

Puede alguien señalarme algunos recursos sobre la comparación de rendimiento entre las diferentes bibliotecas de Query DSL disponibles para usar con Java, como: Querydsl, jOOQ, JEQUEL, activejdbc, iciql y etc..

Antecedentes Estoy usando la plantilla Spring JDBC, pero eso todavía requería que las consultas se escribieran en formato de cadena simple. Aunque no tengo problemas para escribir las consultas directas, me preocupa tener una dependencia directa en los nombres de las tablas DB. No quiero usar ningún marco ORM como Hibernate o JPA / EclipseLink. Necesito el rendimiento bruto lo más alto posible (en mi opinión, son buenos para aplicaciones más centradas en CRUD). Puedo permitirme un poco de gastos generales para estas DSL solo si eso es un poco (¡creo que serán principalmente concatenaciones de StringBuilder / String!)

He considerado usar consultas con nombre externalizadas en algunos xml. Pero solo trato de evaluar el valor que proporcionan las diferentes bibliotecas de Query DSL.

Edit: más sobre mi requisito: Quiero saber la comparación de rendimiento entre estos cuando construyo una consulta moderadamente compleja usando sus métodos API. Todo lo que necesito es generar una cadena de consulta utilizando cualquiera de estas bibliotecas DSL de consulta y pasarla a la plantilla Spring JDBC. Por lo tanto, quiero saber si la adición de este paso intermedio conlleva una penalización de rendimiento considerable, quiero usar consultas con nombre o crear mi propia biblioteca que solo usa StingBuilder o un enfoque similar

actualiza mi experiencia con jOOQ, iciql, QueryDSL:

Aunque no mencioné esto en mi publicación original, también estoy interesado en la facilidad de uso y la sobrecarga que necesito tener en mis clases de entidad (como si se requieren anotaciones o implementaciones adicionales).

jOOQ:

requiere cambiar las propiedades de la entidad a la forma específica de la bibliotecacan devolver cadena de consulta SQL

Iciql:

entity se puede asignar sin cambios o con pocos cambios (se puede asignar usando un total de 3 formas) pero con eso se limita a seleccionar solo consultas (para actualizar / eliminar / ... requiere cambios de entidad nuevamente)

QueryDSL:

múltiples formas de vincular entidades con la tabla (además de las formas específicas de la biblioteca, se admite el uso de anotaciones JPA). pero necesitamos modificar las entidades al menosno forma simple / directa de obtener la cadena de consulta

(todas las observaciones son con poco conocimiento que tengo sobre estas; si alguna de estas es incorrecta, corríjala)

Con todo lo anterior, me quedo con escribir consultas con nombre :( Pero como la respuesta de Lukas Eder parece explicar sobre mi preocupación original de publicación (rendimiento), he aceptado la suya.

Respuestas a la pregunta(4)

Su respuesta a la pregunta