Spring Boot和数据存储库-片段实现x不实现x

时间:2019-06-06 11:08:28

标签: spring spring-boot spring-data-jpa spring-repositories

我从Spring Boot v.1.5.8 to v.2.1.5升级了。当我尝试启动应用程序时,出现以下错误:

IllegalArgumentException: Fragment implementation .OtmUniParentRepository2019GeneratedImpl$$EnhancerBySpringCGLIB$$cdf9e294 does not implement x.OtmUniParentRepository2019Generated!

为什么我不能再开始了?

文件:

  

OtoUniChildRepository2019

@RepositoryRestResource(collectionResourceRel = "OtoUniChild2019", path = "OtoUniChild2019")
public interface OtoUniChildRepository2019 extends OtoUniChildRepository2019Generated {

}

@Transactional
class OtoUniChildRepository2019Impl extends HeartcoreRepositoryImpl<OtoUniChild> {

    @PostConstruct
    private void setIni() {
        super.setIni(OtoUniChild.TABLENAME, OtoUniChild.getColumnName(), OtoUniChild.class, "AGRIDB2019");
    }

}
  

OtoUniChildRepository2019Generated

public interface OtoUniChildRepository2019Generated extends HeartcoreRepository<OtoUniChild>  {


    OtoUniChild findByIdAndOtoUniParentIsNotNull(@Param("id") String id);

    OtoUniChild findByOtoUniParentId(@Param("id") String id);

}

@Transactional
class OtoUniChildRepository2019GeneratedImpl extends HeartcoreRepositoryImpl<OtoUniChild> {

    @PostConstruct
    private void setIni() {
        super.setIni(OtoUniChild.TABLENAME, OtoUniChild.getColumnName(), OtoUniChild.class, "AGRIDB2019");
    }

}
  

HeartcoreRepository

@NoRepositoryBean
public interface HeartcoreRepository<T extends Heartcore> extends RevisionRepository<T, String, Integer>, PagingAndSortingRepository<T, String>, HeartcoreCustomRepository<T> {

    @Override
    T findOne(String id);

    boolean existsById(String id);

    @Override
    Collection<T> findAll();

    List<T> findAllByKanton(@Param("kanton") String kanton);
}
  

HeartcoreCustomRepository

public interface HeartcoreCustomRepository<T extends Heartcore> {

    List<T> findCustom(String sqlQuery);

    List<T> findCustom(String select, String where);

    Class<T> getType();

    T findOne(String id);

    Collection<T> findAll();

     String getSequence(String sequenceName);
}
  

HeartcoreCustomRepositoryImpl

@Transactional
public class HeartcoreRepositoryImpl<T extends Heartcore> implements HeartcoreCustomRepository<T> {

    @PersistenceContext
    protected EntityManager entityManager;

    // irrelevant code

    public void setIni(String tablename, List<String> columns, Class<T> type, String schema) {
        this.tablename = tablename;
        this.columns = columns;
        this.type = type;
        this.schema = schema;

        MultitenantDataSource multitenantDataSource = (MultitenantDataSource) entityManager.getEntityManagerFactory().getProperties().get("hibernate.connection.datasource");
        DataSource dataSource = (DataSource) multitenantDataSource.determineTargetDataSource();
        try {
            this.dbDriver = dataSource.getConnection().getMetaData().getDriverName();
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
    }

// irrelevant code

使用1.5.8可以正常工作,我找不到有关更改中断的信息。

编辑:该存储库的继承结构有问题吗?我尝试了一些不同的方法,但没有一个奏效。还有其他方法可以为存储库实现一些基本功能吗?

0 个答案:

没有答案