Собственный запрос Spring Data JPA не соответствует соглашению об именах с проекциями - PullRequest
1 голос
/ 21 марта 2019

Я использую Spring Boot 2.1.3.RELEASE, Spring Data JPA для базы данных PostgreSQL.

В именах столбцов используются подчеркивания (например, created_by), а бины сущностей - обычный Java camelCase createdBy, getCreatedBy() и т. Д.

Я пытаюсь написать собственный запрос с интерфейсом проекции, но получаю обратно null значения.Пример:

public class MyEntity {
    private String createdBy;
    // getters and setters etc
    // more fields here
}

public interface MyProjection {
    String getCreatedBy();
}

public interface MyRepository extends JpaRepository<MyEntity, Long> {
    @Query(value = "
       SELECT DISTINCT cool_table.* FROM cool_table INNER JOIN
       // more SQL things", nativeQuery = true
    )
    List<MyProjection> searchNative(String filter);
}

Когда я запускаю это, я получаю нулевое значение для столбцов, разделенных подчеркиванием (которые отлично работают с не нативными запросами).

В качестве эксперимента я добавил метод вмоя проекция называется getCreated_by(), и она отлично работает ...

Я не хочу переименовывать все методы в моей проекции, чтобы в их именах были подчеркивания, потому что это выглядит некрасиво.Есть ли способ заставить собственные запросы работать вместе с проекциями?

1 Ответ

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

Просто используйте аннотацию @Column и физически задайте имена столбцов, как в базе данных.Другой вариант - настроить автоматическое создание схемы и посмотреть, какая схема создается автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...