У меня есть классный человек, имеющий свойство first_name
строкового типа. Теперь я хочу определить метод поиска в PersonRepository, который может найти всех людей, у которых имя равно строке. Я добавляю этот метод в репозиторий Person следующим образом.
List<Person> findByFirst_name(String first_name)
, но я получаю сообщение об ошибке, что в личном классе нет свойства first
. Я уже определил так много методов find, но эти свойства не содержат _
, поэтому я могу легко определить эти методы findBy. С этой проблемой я столкнулся только со свойствами, имеющими _
(подчеркивания) в строке имени. По некоторым причинам не могу поменять first_name
на fisrtName
, я что-то делаю не так? Как создать метод findBy для свойств, имеющих _
, это особый случай?
вот мой код. Person. java
@Document(collection="person")
public class Person {
@Id
private String id;
private String first_name;
private String last_name;
private String gender;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
PersonRepository.
public interface PersonRepository extends MongoRepository<Person, String>{
List<Person> findByGender(String gender);
List<Person> findByFirst_name(String first_name); // throwing error (No property first found for type Person!)
}
Ошибка: вызвано: org.springframework.data.mapping.PropertyReferenceException: для типа Person сначала не найдено свойство !