不能使用在抽象类上声明的自动连线存储库

问题描述

我正在SpringBoot上的一个项目上工作。当我尝试使用在服务的抽象服务类上声明的自动连接存储库(验证功能上的存储库)时,此错误显示

com.sun.proxy。$ Proxy98无法转换为com.highschoolregistration.app.repo.user.UserRepository

这是我的服务类:

 @Service
    public class UserServiceImpl extends AbstractServiceImpl<UserRepository,User,UserDTOS,UserDTOR>
        implements UserService
{
    @Autowired
    private UserTypeService userType;
    
    public UserServiceImpl() {
        super(User.class,UserDTOS.class,UserDTOR.class);
    }
    
    @Override
    public User setForeignKeys(User entity,UserDTOR dtor) {
        entity.setUserType(userType.getEntityById(dtor.getUserTypeId()));
        return entity;
    }
    
    @Override
    public String validate(User entity) {
        if(repo.findOneByIdNumber(entity.getIdNumber()) != null)
            return "Student already exists";
        return "";
    }

}

这是 AbstractServiceClass 的一部分,因为我不需要展示所有内容

@Getter
public abstract class AbstractServiceImpl
    <Repo extends BaseRepository<Entity>,Entity extends BaseResource,DTOS extends BaseResource,DTOR extends BaseResource>
    implements AbstractService<Repo,Entity,DTOS,DTOR>
{
    @Autowired
    protected Repo repo;
    
    protected Class<Entity> entityClass;
    protected Class<DTOS> dtoSClass;
    protected Class<DTOR> dtoRClass;
    
    @Setter
    protected ServiceMapper<Entity,DTOR> mapper;
    
    public AbstractServiceImpl(Class<Entity> entityClass,Class<DTOS> dtoSClass,Class<DTOR> dtoRClass ) {
        this.entityClass = entityClass;
        this.dtoRClass = dtoRClass;
        this.dtoSClass = dtoSClass;
        mapper = new JMapperImpl<>(entityClass,dtoSClass,dtoRClass);
    }
...
}

这是存储库

public interface UserRepository extends BaseRepository<User> {

    public User findOneByIdNumber(String idNumber);
    
}

BaseRepository

public interface BaseRepository<T extends BaseResource> extends JpaRepository<T,Long> {

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)