List。[org.jooq.Query.getBindValues()返回的是否包含类型安全的对象-对于每个查询参数?

问题描述 投票:0回答:1
JOOQ的新手。遇到这篇文章:https://thoughts-on-java.org/hibernate-jooq-a-match-made-in-heaven/

`

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)); } }

`

jpaQuery.setParameter()方法本身不是类型安全的,因为它接受'Object'。

问题: jooqQuery.getBindValues()是否返回[每个参数类型安全的List<Object>

java jpa types jooq
1个回答
1
投票
// This stuff is type safe var 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%")); // This stuff isn't, and there is no need Query q = em.createNativeQuery(jooqQuery.getSQL()); setBindParameterValues(q, jooqQuery);
© www.soinside.com 2019 - 2024. All rights reserved.