Почему необходимо создать непараметрический конструктор для объекта, который будет связан с Solr Response? - PullRequest
0 голосов
/ 03 января 2019

Я использую solrj в своем проекте и, следуя этому учебнику, я создал объект класса

public class Student {
    @Field String id;

    public Student(String studentId) {
        this.id = studentId;
    }

    //setter and getter methods here

}

И использовал следующий код для извлечения данных из Solr и привязки ответа к Student объекту

final SolrClient client = getSolrClient();
final SolrQuery query = new SolrQuery("*:*");
query.addField("id");

final QueryResponse response = client.query("collection-name", query);
final List<Student> students = response.getBeans(Student.class); 

В последней строке я получаю сообщение об ошибке. org.apache.solr.client.solrj.beans.BindingException: Could not instantiate object of class Student

Но когда я добавляю конструктор public Student() { } в класс Student, он работает нормально. У меня вопрос: почему это не сработало в первом случае или почему здесь необходимо создать непараметрический конструктор?

1 Ответ

0 голосов
/ 03 января 2019

Во всех руководствах solrj ref есть пример, и у него есть пустой конструктор, но нет описания для этого.Я думаю, что API вызывает пустой конструктор перед извлечением данных и заполняет поля одно за другим.

...