我可以通过在适当的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是静态编译的,无法动态添加成员。可能会有一个为这些方法生成代码的工具,但是如果该工具为所有列组合生成方法,则最终会产生大量方法。

09-12 12:55