Пн go Ошибка репозитория: для типа Person впервые не найдено свойство !, Получена ошибка при определении findByFirst_name (String first_Name); - PullRequest
0 голосов
/ 12 июля 2020

У меня есть классный человек, имеющий свойство 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 сначала не найдено свойство !

1 Ответ

0 голосов
/ 12 июля 2020

У вас есть два способа решить эту проблему:

  1. Сделайте поля вашего объекта camelCase
  2. Пропустите подчеркивание в first_name, удвоив подчеркивание, например first__name поэтому он должен выглядеть как findByFirst__name(String first_name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...