Код: Выделить всё
@Table("entity_a")
public record EntityA(
@Id
Long id,
@Column("entity_a_id")
EntityB other) {
}
@Table("entity_b")
public record EntityB(
Long entityAId,
String value) {
}
Использование API критериев, как это не работает:
Код: Выделить всё
jdbcAggregateTemplate.findAll(query, EntityA.class);
Полученное исключение показывает, что сгенерированный запрос всегда выглядит следующим образом:
SELECT ...
FROM "entity_a"
LEFT OUTER JOIN "entity_b" "other" ON "other"."entity_a_id" = "entity_a"."id"
WHERE ("entity_a"."value" = ?)
< /code>
Я попробовал следующие вариации < /p>
query = query(Criteria.where("other_value").is("something"));
< /code>
и < /p>
query = query(Criteria.where("other.value").is("something"));
< /code>
оба вызвали один и тот же результат. -SQL PrettyPrint-Override ">SELECT ...
FROM "entity_a"
LEFT OUTER JOIN "entity_b" "other" ON "other"."entity_a_id" = "entity_a"."id"
WHERE ("other"."value" = ?)
< /code>
Я делаю что -то не так или просто в настоящее время невозможно использовать API критериев? Переход на Spring Data JPA в настоящее время не вариант для меня.
Подробнее здесь: https://stackoverflow.com/questions/794 ... y-criteria