我有两个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泛型来实现这个用例吗?