Mongo存储库错误:首次找不到类型为Person!的属性,定义findByFirst_name(String first_Name)时出错;

我有一个具有字符串类型的属性first_name的类人,现在我想在PersonRepository中定义一个find方法,该方法可以找到所有名字等于字符串的人。我正在像这样在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的属性!

iCMS 回答:Mongo存储库错误:首次找不到类型为Person!的属性,定义findByFirst_name(String first_Name)时出错;

您有两种方法可以解决此问题:

  1. 设为您的实体字段camelCase
  2. 通过将下划线加倍,例如first_name,跳过first__name中的下划线,使其看起来像findByFirst__name(String first_name);
本文链接:https://www.f2er.com/1951619.html

大家都在问