У меня есть следующие простые сущности:
Suggestion.java:
@Entity
public class Suggestion {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToOne
private Employee author;
@OneToMany
@JoinColumn(name = "recipients_id")
private List<Employee> recipients;
}
и Employee.java:
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
}
Я хотел бы вернуть в контроллер все suggestions
, которые содержат только одного сотрудника id
в recipients
списке.
Можно ли избежать пользовательского запроса (нативный запрос)?
Я пытался:
findByRecipientsContains (id) или
* * FindByRecipientsContaining тысячи двадцать-одина (ID)
но не повезло ...
EDIT:
Когда я использовал в хранилище:
Optional<List<Suggestion>> findByRecipientsIn(Long id);
также без Optional
и в контроллере:
@GetMapping("/employees/{id}/suggestions")
@ResponseStatus(HttpStatus.OK)
public List<Suggestion> getSuggestionsByRecipient(@PathVariable("id") Long id) {
return suggestionRepository.findByRecipientsIn(id).get();
}
Я получаю исключение следующим образом:
Parameter value element [1] did not match expected type [com.herokuapp.erpmesbackend.erpmesbackend.employees.Employee (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value element [1] did not match expected type [com.herokuapp.erpmesbackend.erpmesbackend.employees.Employee (n/a)]] with root cause