Я пытаюсь добавить пользовательский запрос в 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?