У меня есть контроллер, который пытается найти с дополнительным полем.Класс сущности JPA определен как:
package demo;
import javax.persistence.*;
@Entity
public class UploadFile {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
public UploadFile() {
}
public UploadFile(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "UploadFile{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
Контроллер определен в следующем коде:
@RequestMapping(value = "/searchFile", method = RequestMethod.GET)
public @ResponseBody
List<UploadFile> searchFile(@RequestParam("id") Optional<Integer> id, @RequestParam("name") Optional<String> name) {
UploadFile newFile = new UploadFile();
if (id.isPresent()) {
newFile.setId(id.get());
}
if (name.isPresent()) {
newFile.setName(name.get());
}
System.out.println("new File: " + newFile);
//uploadFileRepository is a JpaRepository Class
return List<UploadFile> files = uploadFileRepository.findAll(Example.of(newFile));
}
база данных имеет одну запись
ID NAME SIZE TYPE
1 index 111 html
, когда'/ searchFile? id = 1' обращается к серверу, консоль печатает:
new File: UploadFile{id=1, name='null'}
пустой массив, возвращаемый http.
Я хочу, чтобы / searchFile? id = 1 возвращал записьс идентификатором 1, а также '/ searchFile? name = index' также возвращает запись с идентификатором 1.
Что-то я не так сделал?
Спасибо!