Начиная с Spring 5, у нас есть возможность обогатить наш репозиторий JPA несколькими репозиториями фрагментов.
Механизм довольно прост: объявите и реализуйте интерфейс.
public interface CustomRepository<T,K> {
// my very special finder
T findByIdCustom(K id);
}
public class CustomRepositoryImpl implements CustomRepository<T,K> {
T findByIdCustom(K id) {
// retrieve the item
}
}
Затем используйте это так:
public interface ItemRepository
extends JpaRepository<Item, Long>, CustomRepository<Item, Long> {
}
Теперь предположим, что я хочу установить некоторые подсказки запроса и / или граф сущностей, например:
public interface ItemRepository extends JpaRepository<Item, Long>, CustomRepository<Item, Long>{
@QueryHints(value = { @QueryHint(name = "name", value = "value")},
forCounting = false)
@EntityGraph(value = "Item.characteristics")
Item findByIdCustom(Long id);
}
Поскольку у меня есть пользовательская реализация, приведенные выше подсказки к запросу и граф сущностей, которые хорошо работают с JpaRepository
методами, здесь игнорируются.
Мой вопрос:
Как применить метаданные метода к базовому запросу?