3 回答
TA贡献1852条经验 获得超1个赞
一旦 Spring boot 检测到您需要,JPA 存储库的自动配置就会启用。
根据@JpaRepositoriesAutoConfiguration
规范(重点是我的):
Spring Data 的 JPA 存储库的自动配置。当上下文中配置了 DataSource 类型的 bean、Spring Data JPA JpaRepository 类型位于类路径上并且没有配置其他现有 JpaRepository 时激活。一旦生效,自动配置相当于使用 EnableJpaRepositories 注释启用 JPA 存储库。该配置类将在 Hibernate 自动配置后激活。
要覆盖它,请显式添加@EnableJpaRepositories
注释,但除了注释中定义的字段之外,您无法添加任何逻辑。
TA贡献1829条经验 获得超4个赞
无法帮助你负责扫描的native类,但是可以告诉你如何在你自己的类中进行扫描。该代码是从我的项目借用的 - 它可以公开每个实体的 id。您不必每次都向列表中添加新内容 - 很容易忘记这一步。您需要有一个扩展 RepositoryRestConfigurerAdapter 或 RepositoryRestMvcConfiguration 的配置,并添加一个方法,如下所示:
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
// getting a list of all classes annotated with @Entity
List<Class<?>> classes = CPScanner.scanClasses(new PackageNameFilter("ru.outofrange.*"),
new ClassFilter().appendAnnotation(Entity.class));
Class[] arrayClasses = new Class[classes.size()];
for (int i = 0; i < classes.size(); i++) {
arrayClasses[i] = classes.get(i);
}
config.exposeIdsFor(arrayClasses);
}
需要此依赖项:
<dependency>
<groupId>net.sf.corn</groupId>
<artifactId>corn-cps</artifactId>
<version>1.0.1</version>
</dependency>
添加回答
举报