Spring Data JDB C преобразователь параметров пользовательских запросов - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь добавить пользовательский запрос в Spring Data JDB C CrudRepository, чтобы разрешить поиск сущностей по альтернативному естественному ключу. У сущности есть идентификатор, который в данном случае является длинным, и естественный ключ, имеющий тип Reference (базовый тип - UUID).

Я создал и зарегистрировал пользовательские преобразователи из Reference в UUID и наоборот. и хотел бы использовать их при поиске объектов по ссылке. Преобразование работает при извлечении и сохранении сущностей в базу данных и из нее (Postgres 12.2).

Что мне не удалось сделать, так это определить собственный метод, который находит сущность по ее ссылке.

Это похоже на мою ситуацию:

public interface OrderRepository implements CrudRepository<Order, Long> {

    @Query("select o from Order o where o.reference = :reference")
    Optional<Order> findByReference(@Param("reference") Order.Reference reference);
}

Можно ли это сделать таким образом? Я использую последнюю версию Spring Data JDB C (1.1.6). Я хотел бы избежать запроса, который принимает базовый тип (в данном случае UUID).

Если это невозможно сделать с помощью пользовательского запроса, какие варианты доступны? Я рассмотрел, возможно, использование MyBatis с Spring Data JDB C?

1 Ответ

0 голосов
/ 31 марта 2020

Это известная проблема , реализованная с 2.0 M3, которая доступна из репозитория Springs Milestone . Пожалуйста, попробуйте.

Примечание: 2.0 M3 вводит Dialect, но надлежащее автоматическое c обнаружение поставляется только с 2.0 RC1`, который должен быть выпущен сегодня 2020-03-31. Вы можете подождать, чтобы избавить вас от головной боли

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