Почему Spring Data JPA с использованием SpEL не поддерживает несколько сущностей?
Я пытаюсь реализовать репозиторий с поддержкой нескольких сущностей, используя наследование и SpEL. Но он отлично работает только для одного объекта, а не для нескольких.
Ниже мой код:
Общий абстрактный класс
@MappedSuperclass
public abstract class GenericTask {
}
UserInfo Entity
@Entity
public class UserInfo extends GenericTask {
...
...
Сущность UserDetails
@Entity
@Table(name = "user_details")
public class UserDetails extends GenericTask {
GenericTaskRepository
@NoRepositoryBean
public interface GenericTaskRepository<T extends GenericTask> extends JpaRepository<T, Integer> {
@Query("SELECT t FROM #{#entityName} t")
public List<T> findByEntityName(String entityName);
}
UserInfoRepository
@Repository
public interface UserInfoRepository extends GenericTaskRepository<UserInfo> {
}
UserLimitRepository
@Repository
public interface UserLimitRepository extends GenericTaskRepository<UserDetails> {
}
обслуживание
@Autowired
private GenericTaskRepository<?> genericRepo;
public List<?> getAllTaskByEntityName(String entityName) {
return genericRepo.findByEntityName(entityName);
}
И я получаю сообщение об ошибке ниже при запуске приложения как,
Field genericRepo in com.test.service.CheckerService required a single bean, but 2 were found:
- userDetailsRepository: defined in com.test.repository.UserDetailsRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration
- userInfoRepository: defined in com.test.repository.UserInfoRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration
Action:
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed