Изменить тип возвращаемого значения Spring findAll()

Я хочу запустить метод findAll() Spring JPA, но вернуть все записи, но затем без возврата всех записей. Я хочу вернуть значения из проекции. подобно

public interface StudentRepository extends CrudRepository<Student, Integer>{
    //How can I achieve this
    List<NamesOnly> findAll(); 
   //Which returns list of only student names;
}

public interface NamesOnly{
@Value("#{target.firstName+ ' ' + target.lastName}")
    String getFullName();
}

или, в качестве альтернативы,

how to convert List<Student> given by default findAll() to List<NamesOnly>??

2 ответа

Вы должны будете выполнить изменение в другом методе, вы не можете изменить тип возвращаемого репозитория, который определяется вашим: extends CrudRepository<Student, Integer>

Ты можешь это сделать. Создайте StudentD только для одного поля: studentName и в StudentRepository сделайте это:

  List<StudentDto> findAllStudent(); 

StudentDTO.class

public class StudentDTO {
       private String studentName //this is field you want return

     }

Или вы можете использовать аннотацию @JsonIgnore над полем, которое вы не хотите показывать при ответной линии взгляда:

  **Student.class**


  @JsonIgnore
  private String firstName //this is field you don't want spring reponse.
Другие вопросы по тегам