JPA-запрос от Java-объекта - PullRequest
0 голосов
/ 27 февраля 2019

Как я могу использовать jpa для запроса объекта (не сущности)?

Например, этот простой код:

String [] theList = {a,b,c,d}. 
Query q = new Query("Select tl from theList tl")

Причина: запросы динамически создаются и выполняются, но объекты в предложении from запроса jpql не обязательно являются отображаемыми таблицами.В некоторых случаях это просто объект, поэтому фактическим поведением является необходимость изменения запроса во время выполнения программы, чтобы он соответствовал критериям, но я не знаю, как изменить запрос.

Редактировать: я не использую нативные запросы из-за переносимости кода.Это будет последний вариант.

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Я думаю, что JdbcTemplate будет достаточно для вашего требования.

JdbcTemplate позволяет гибко запускать собственные запросы и сопоставлять их с классом Java.

Однако вам придется явно сопоставить свой класс Java с именами столбцов в базе данных.

0 голосов
/ 05 марта 2019

Я решил использовать joSQL .Это мощный инструмент с открытым исходным кодом, который позволяет запрашивать объекты Java с помощью «sql».Это не jpa, но удовлетворяет мои потребности.Другой инструмент, который я видел, который делает это, называется querydsl.

0 голосов
/ 27 февраля 2019

То, что вы ищете, называется LINQ, и, к сожалению (?), Оно доступно только в C #.

Однако вы можете частично эмулировать его с помощью Stream (s).
Поток предлагает практически все необходимые операторы

.filter()               where
.max()                  max
.sorted()               orderby
.limit()                limit
.skip()                 offset
.collect(groupingBy())  group by

и так далее.Просто взгляните на Javadoc!

...