получение только информации, а не самой сущности?
Если вам требуется только частичное содержимое сущности или сложные данные из нескольких таблиц, вам следует использовать DTO / проекцию.
разве интерфейсная проекция больше не подходит для этого, так как это только интерфейс?
Я предпочитаю использовать проекции на основе интерфейса , потому что у них есть некоторыепреимущества перед классами:
1) их легче реализовать (это просто интерфейс)
2) они могут быть открыты - поэтому мы можем расширить ихфункциональность
3) в нашем пользовательском запросе мы должны использовать конструктор проекции на основе классов, в отличие от интерфейса, сравните:
Query("select m.name as name from Model m")
List<ModelProjection> getModelList();
Query("select new com.example.ModelDto(m.name) from Model m")
List<ModelDto> getModelList();