Java org.jooq.Query.getBindValues()返回的列表是否包含每个查询参数的类型安全对象?
JOOQ的新成员。 我看到这篇文章: ` ` 方法jpaQuery.setParameter本身不是类型安全的,因为它接受“Object”Java org.jooq.Query.getBindValues()返回的列表是否包含每个查询参数的类型安全对象?,java,jpa,types,jooq,Java,Jpa,Types,Jooq,JOOQ的新成员。 我看到这篇文章: ` ` 方法jpaQuery.setParameter本身不是类型安全的,因为它接受“Object” 问题:jooqQuery.getBindValues是否返回每个参数类型安全的列表 该方法是博客作者编写的将jOOQ查询转换为JPA查询的粘合代码。此胶水代码中没有类型安全性。您正在寻找的类型安全性在本文的其他示例中提供,作者使用jOOQ API构建了类型安全查询,例如: //这东西是类型安全的 var jooqQuery= ctx.selectAUTHO
问题:jooqQuery.getBindValues是否返回每个参数类型安全的列表 该方法是博客作者编写的将jOOQ查询转换为JPA查询的粘合代码。此胶水代码中没有类型安全性。您正在寻找的类型安全性在本文的其他示例中提供,作者使用jOOQ API构建了类型安全查询,例如: //这东西是类型安全的 var jooqQuery= ctx.selectAUTHOR.FIRSTNAME、AUTHOR.LASTNAME、BOOK.TITLE .作者 .leftJoinBOOK_AUTHOR.onAUTHOR.ID.eqBOOK_AUTHOR.AUTHORS_ID .leftJoinBOOK.onBOOK\u AUTHOR.BOOKS\u ID.eqBOOK.ID .whereAUTHOR.FIRSTNAME.likeThor%;
//这东西不是,也没有必要 Query q=em.createNativeQueryjooqQuery.getSQL; setBindParameterValuesq,jooqQuery;
这东西不是,也没有必要-这是什么意思?在这一点上,我们不需要担心类型安全性?在通过JOOQ DSLContext构建SQL时是否注意到了这一点?我真的不确定您在这里问什么,谢谢,因为您已经在中回答了。并接受您的回答:将打印绑定值的类型,例如整数、字符串、日期等。
SelectConditionStep<Record3<String, String, String>> jooqQuery =
ctx.select(AUTHOR.FIRSTNAME, AUTHOR.LASTNAME, BOOK.TITLE)
.from(AUTHOR)
.leftJoin(BOOK_AUTHOR).on(AUTHOR.ID.eq(BOOK_AUTHOR.AUTHORS_ID))
.leftJoin(BOOK).on(BOOK_AUTHOR.BOOKS_ID.eq(BOOK.ID))
.where(AUTHOR.FIRSTNAME.like("Thor%"));
Query q = em.createNativeQuery(jooqQuery.getSQL());
setBindParameterValues(q, jooqQuery);
private static void setBindParameterValues(javax.persistence.Query jpaQuery, org.jooq.Query jooqQuery) {
List<Object> values = jooqQuery.getBindValues();
for (int i = 0; i < values.size(); i++) {
jpaQuery.setParameter(i + 1, values.get(i));
}
}