выборка значений одного столбца в JPA - PullRequest
0 голосов
/ 28 октября 2019

Я хочу получить все значения из определенного столбца в JPA и сохранить все значения в списке. В настоящее время я использую описанный ниже подход, но я получаю записи в другом формате. Кто-нибудь, пожалуйста, помогите мне

Query q1 = factory.createNativeQuery("select * from booking_attendee where booking_id="+id);
List<String> em1=q1.getResultList();
return em1;
query otput
em=[[Ljava.lang.Object;@68606667, [Ljava.lang.Object;@2cd7f99a, [Ljava.lang.Object;@137a5a5, [Ljava.lang.Object;@a45cc1c, [Ljava.lang.Object;@61fdc06d, [Ljava.lang.Object;@72f5eee1, [Ljava.lang.Object;@4e536797]

1 Ответ

0 голосов
/ 29 октября 2019

Если вы хотите создать собственный запрос для этого, это больше о том, как решить это в SQL. Вы не говорите SELECT *, что означает все столбцы. Вам нужно будет сказать SELECT your_column_name, чтобы выбрать только определенный столбец.

Query q1 = factory.createNativeQuery("SELECT your_column FROM booking_attendee");
List<String> em1 = q1.getResultList();

Предложение WHERE может и должно быть определено с привязкой параметров JPA. Есть несколько преимуществ, касающихся производительности и внедрения SQL.

Привязка именованных параметров является особой для поставщика сохраняемости (например, Hibernate). Обычный способ для JPA - использовать ?, чтобы ваш код был переносимым на других провайдеров.

Query q1 = factory.createNativeQuery("SELECT your_column FROM booking_attendee b WHERE b.booking_id = ?");
q1.setParameter(1, id);
List<String> em1 = q1.getResultList();

Собственные запросы предоставляют возможность использовать оригинальный SQL. Таким образом, некоторые функции, которые являются специфическими для вашей базы данных, могут быть использованы с этим. Тем не менее, если у вас нет очень специфического кода SQL, вам также следует взглянуть на JPQL, конкретный язык запросов JPA и API критериев JPA, который дает преимущества, когда вы хотите реорганизовать свой код, показывает ошибки во время компиляции иоблегчает динамическое создание запросов.

...