Изменить тип возвращаемого значения 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.