Я довольно новичок в Java и работаю над приложением базы данных Spring Boot (MySQL), в котором я пытаюсь создать метод, который позволит удалять клиента (объект Java) из моей базы данных, используя DaoCrudRepository и поиск по уникальному Id.При запуске я получаю сообщение об ошибке «ошибка: несовместимые типы: int невозможно преобразовать в клиент»
Я сравнил аналогичную программу, в которой я использовал тот же синтаксис без проблем, поэтому не знаю, почемуЯ получаю эту ошибку при обработке.
Мой объект настроен так: @Entity public class Client {
@Id
@GeneratedValue
private int id;
@NotNull
@Size(min=1, message = "Must enter client name")
private String name;
@NotNull
@Size(min=1, message= "Must enter contact's name")
private String contact;
@NotNull
@Size(min=1, message="Must enter primary office location")
private String location;
@NotNull(message="Must enter contract start date")
private String startDate;
@NotNull(message="Must enter contract end date")
private String endDate;
@NotNull(message="Must enter employee count")
private Integer employeeCount;
private PhilanthropyInterest interest;
public Client(String name, String contact, String location, String startDate, String endDate, Integer employeeCount) {
this.name = name;
this.contact = contact;
this.location = location;
this.startDate = startDate;
this.endDate = endDate;
this.employeeCount = employeeCount;
}
public Client () { }
public int getId() { return id; }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public Integer getEmployeeCount() {
return employeeCount;
}
public void setEmployeeCount(Integer employeeCount) {
this.employeeCount = employeeCount;
}
public PhilanthropyInterest getInterest() { return interest; }
public void setInterest(PhilanthropyInterest interest) { this.interest = interest; }
И мой метод контроллера, в котором я получаю сообщение об ошибке:
@RequestMapping(value = "remove", method = RequestMethod.GET)
public String displayRemoveAddClientForm(Model model) {
model.addAttribute("clients", clientDao.findAll());
model.addAttribute("title", "Remove Client");
return "clients/remove";
}
@RequestMapping(value = "remove", method = RequestMethod.POST)
public String processRemoveClientForm(@RequestParam int[] clientIds) {
for (int clientId : clientIds) {
clientDao.delete(clientId);
}
return "redirect:";
}
И мой класс ClientDao:
@Repository
@Transactional
public interface ClientDao extends CrudRepository<Client, Integer> {
}
Ошибка, отображаемая в состояниях IntelliJ:
delete (org.launchcode.spcdb.models.Client) в CrudRepositoryне может быть применено к (int)
, и при запуске я получаю:
ошибка: несовместимые типы: int не может быть преобразован в Client clientDao.delete (clientId);