Изменить тип возвращаемого значения Spring findAll () - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу запустить метод 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 ]

0 голосов
/ 10 февраля 2019

Вы можете сделать это.Создайте 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.
0 голосов
/ 10 февраля 2019

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

...