Spring数据JPA:JPA实体和存储库类的Wrapper类

时间:2018-05-25 03:44:11

标签: java generics spring-data-jpa

我有两个JPA实体(Product,ProductCustomer)及其相应的JPA存储库(ProductRepository,ProductCustomerRepository)。我的用例是调用两个存储库的findAll()方法并在excel中写入结果集。

我希望用一个通用对象包装实体对象和存储库对象,而不是自动装配每个存储库(存储库可能在将来增长)和调用findAll方法,该对象将用于调用每个存储库的findAll方法

例如:

public class GenericEntity {

}

@Entity
@Table(name="Product")
public class Product extends GenericEntity{
}

GenericRepository:

public interface GenericRepository<T extends GenericEntity> extends JpaRepository<T, Integer> {
}

ProductRepository:

public interface ProductRepository extends GenericRepository<Product>{
}

启动时执行方法:

    GenericRepository repo = (GenericRepository) context.getBean("productRepository");

List<GenericEntity> dataList = repo.findAll();

当我尝试尝试这个时,JPA期望包装器上的@Entity和@Id注释(GenericEntity)。有什么方法可以使用Java泛型来实现这个用例吗?

0 个答案:

没有答案