Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪个类负责扫描Spring JPA、Hibernate中的@Entity注释?_Java_Spring_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Java 哪个类负责扫描Spring JPA、Hibernate中的@Entity注释?

Java 哪个类负责扫描Spring JPA、Hibernate中的@Entity注释?,java,spring,hibernate,spring-boot,jpa,Java,Spring,Hibernate,Spring Boot,Jpa,我正在寻找一个类,它负责扫描JPA、Hibernate或Spring中用@Entity注释的所有类 我想扩展该类,并在扫描该类时添加一些逻辑 我搜索了所有地方(spring文档、JPA、Hibernate文档),但没有找到它。一旦spring boot检测到您需要它,JPA存储库的自动配置就会启用。 从@JpaRepositoriesAutoConfiguration规范(重点是我的): Spring数据的JPA存储库的自动配置在以下情况下激活: 在上下文中配置了DataSource类型的bea

我正在寻找一个类,它负责扫描JPA、Hibernate或Spring中用@Entity注释的所有类

我想扩展该类,并在扫描该类时添加一些逻辑


我搜索了所有地方(spring文档、JPA、Hibernate文档),但没有找到它。

一旦spring boot检测到您需要它,JPA存储库的自动配置就会启用。
@JpaRepositoriesAutoConfiguration
规范(重点是我的):

Spring数据的JPA存储库的自动配置在以下情况下激活: 在上下文中配置了DataSource类型的bean Spring数据JPA JPA存储类型位于类路径上,并且 没有配置其他现有JPA存储库。一旦生效 自动配置相当于启用JPA存储库 使用EnableJpaRepositories注释。此配置类 将在休眠自动配置后激活


要覆盖它,请显式添加
@EnableJpaRepositories
注释,但不能在注释中定义的字段中添加任何逻辑

我认为这是一个非常广泛的问题,但您需要查看以了解这一点。

无法帮助您使用负责扫描的本机类,但可以告诉您如何在自己的类中扫描。这段代码是从我的项目中借来的,它允许为每个实体公开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);
}
@覆盖
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration配置){
//获取用@Entity注释的所有类的列表

List我想SessionFactoryImpl.java负责扫描Hibernate中的@Entity。请参阅github链接。我想你误解了我的问题。我想知道负责扫描我所有用@Entity注释的类的类。感谢提供源代码。我知道它可以来自spring或Hibernate源代码
<dependency>
    <groupId>net.sf.corn</groupId>
    <artifactId>corn-cps</artifactId>
    <version>1.0.1</version>
</dependency>