我可以通过在适当的JPA类A上定义一个接口来创建存储库,如下所示:
public interface ARepository extends CrudRepository<A, Long>
{
}
我可以通过以下方式在我的控制器中使用它:
@Autowired
private ARepository aRepository;
并且可以做这样的事情:
aRepository.save(..);
aRepository.findAll();
..
到目前为止没有问题。
但是我的问题是我有500个JPA类,需要访问每个表,这意味着以上述方式定义500个存储库。
因此,确实存在可以通过Spring Data“魔术”动态创建的事物,从我的角度来看,魔术应该存在,否则以上情况将是不可能的。看起来像this is similar to my problem。
除此之外,还有一个与上述相关的问题。我可以在界面中定义
findBy...
方法,并在后台为该特定属性生成查询方法。问题还在于,是否可以通过与上一个问题相关的动态方式来完成此操作,因为我有一些需要补充查询方法的表组。 最佳答案
spring-data-generator可以自动为您生成接口。
关于您的第二个问题,我认为您不能动态地解决。 Java是静态编译的,无法动态添加成员。可能会有一个为这些方法生成代码的工具,但是如果该工具为所有列组合生成方法,则最终会产生大量方法。