Не удается получить или создать PersistentEntity для типа

#java #spring #spring-boot #spring-data-jpa

#Ява #весна #пружинный ботинок #весна-данные-jpa

Вопрос:

Я пытался предоставить некоторые сервисы через интерфейс Spring JPARepository , поэтому я создал StudentRepo, подобный этому:

 package edu.university.management.dao;  import java.util.List;   import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.rest.core.annotation.RestResource;  import edu.university.management.model.Student; import edu.university.management.model.StudentsPerDepartment;  public interface StudentRepository extends JpaRepositorylt;Student, Longgt; {    @RestResource(path = "/byDeptOrdered")  //@Query("select s from Student s where s.department.name = 'Informatique' order by s.entryDate desc")  public Listlt;Studentgt; findByDepartment_NameOrderByEntryDateDesc(String deptName);      @RestResource(path = "/topStudents")  @Query("select s"    " from Student s"    " where s.mark = ("    "select max(s.mark)"    " from Student s"    ")")  public Listlt;Studentgt; topStudents();    @RestResource(path = "/studentsPerDept")  @Query("select new edu.university.management.model.StudentsPerDepartment(d.name, count(s))"    " from Department d"    " left join"    " d.students s"    " group by d.name")  public Listlt;StudentsPerDepartmentgt; studentCountPerDepartment(); }  

За последнюю услугу studentCountPerDepartment Я использовал класс на основе projection , чтобы избежать возврата array объектов,

Студенческая кафедра:

 package edu.university.management.model;   public class StudentsPerDepartment {   private String departmentName;  private Long studentCount;    public StudentsPerDepartment(String departmentName, Long studentCount) {  super();  this.departmentName = departmentName;  this.studentCount = studentCount;  }   public String getDepartmentName() {  return departmentName;  }   public Long getStudentCount() {  return studentCount;  }  }  

Но когда я вызываю службу, я получаю эту ошибку:

 org.springframework.data.mapping.MappingException: Cannot get or create PersistentEntity for type edu.university.management.model.StudentsPerDepartment! PersistentEntities knows about 2 MappingContext instances and therefore cannot identify a single responsible one. Please configure the initialEntitySet through an entity scan using the base package in your configuration to pre initialize contexts.  

Есть идеи, ребята?

Спасибо.

Комментарии:

1. Что у тебя в классе Department ? Это нанесено на карту, верно? или попробуйте добавить attr в свой счетчик, как это select new edu.university.management.model.StudentsPerDepartment( d.name, count( s.{ANY_ATTR_TO_COUNT_FROM_DEPARTMENT} ) ) …. Или попробуйте добавить ссылку на пакет в Department like from some.package.Department d

2. @DilermandoLima да, класс Department сопоставлен, и в нем есть только два поля { id , name }, и я также попытался заменить объект атрибутом в графе следующим образом: select new edu.university.management.model.StudentsPerDepartment(d.name, count(s.id)) но все равно не повезло