Почему 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

0 ответов

Другие вопросы по тегам