Использует ли Spring boot Data JPA внутренне спящий для своей реализации? - PullRequest
0 голосов
/ 05 декабря 2018

Я работаю над настройкой существующего проекта, я нашел следующую зависимость в pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

, но нет никакой зависимости для hibernate, так как проверить, использует ли проект hibernate или нет.

А также я обнаружил класс JpaConfiguration, который содержит следующий код.

@Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
        LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
        entityManagerFactoryBean.setDataSource(dataSource);

        String entities = ClassUtils.getPackageName(ArkonnApplication.class);
        String converters = ClassUtils.getPackageName(Jsr310JpaConverters.class);
        entityManagerFactoryBean.setPackagesToScan(new String[]{entities, converters});

        entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());

        Properties jpaProperties = new Properties();
        jpaProperties.put("hibernate.dialect", dialect);
        jpaProperties.put("hibernate.hbm2ddl.auto", hbm2ddlAuto);
        jpaProperties.put("hibernate.show_sql", showSql);
        jpaProperties.put("hibernate.format_sql", formatSql);
        jpaProperties.put("hibernate.use_sql_comments", useSqlComments);
        entityManagerFactoryBean.setJpaProperties(jpaProperties);

        return entityManagerFactoryBean;
    }

, если этот проект использует спящий режим, то почему для него нет никакой зависимости или конфигурации.

1) Является ли Spirng загрузочными данными JPA с конфигурацией Hibernate по умолчанию?.

2) Если да, то как пружинные загрузочные данные JPA внутренне работают с Hibernate. (Любая ссылка)

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Если вы используете пружинную загрузку, свойства jpa должны быть добавлены в application.yml следующим образом:

spring:
  datasource:
    #url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
    url: jdbc:h2:~/nexin;DB_CLOSE_DELAY=-1;MODE=MySQL;MV_STORE=FALSE;MVCC=FALSE
    username: nexin
    password:
    driver-class-name: org.h2.Driver
    platform: h2
  jpa:
    hibernate:
      ddl-auto: create
      show_sql: true
  h2:
    console:
      enabled: true
      path: /console
  logging:
    config: classpath:logback.xml

Если вы выполняете дерево зависимостей mvn в своем проекте, чтобы посмотреть на пружину зависимостейJPA втянул, вы увидите там спящий режим:

 +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.3.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.3.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] |  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile
[INFO] |  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.10.0:compile
[INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] |  |  +- javax.annotation:javax.annotation-api:jar:1.3.2:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.19:runtime
[INFO] |  +- org.springframework.boot:spring-boot-starter-aop:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-aop:jar:5.0.7.RELEASE:compile
[INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.8.13:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- com.zaxxer:HikariCP:jar:2.7.9:compile
[INFO] |  |  \- org.springframework:spring-jdbc:jar:5.0.7.RELEASE:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:5.2.17.Final:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.2.Final:compile
[INFO] |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.2.Final:compile
[INFO] |  |  +- org.javassist:javassist:jar:3.22.0-GA:compile
[INFO] |  |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  +- org.jboss:jandex:jar:2.0.3.Final:compile
[INFO] |  |  +- com.fasterxml:classmate:jar:1.3.4:compile
[INFO] |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[INFO] |  +- javax.transaction:javax.transaction-api:jar:1.2:compile
[INFO] |  +- org.springframework.data:spring-data-jpa:jar:2.0.8.RELEASE:compile
[INFO] |  |  +- org.springframework.data:spring-data-commons:jar:2.0.8.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-orm:jar:5.0.7.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-context:jar:5.0.7.RELEASE:compile
[INFO] |  |  |  \- org.springframework:spring-expression:jar:5.0.7.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-tx:jar:5.0.7.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-beans:jar:5.0.7.RELEASE:compile
[INFO] |  \- org.springframework:spring-aspects:jar:5.0.7.RELEASE:compile
0 голосов
/ 07 декабря 2018

JPA - это интерфейс, а Hibernate - это реализация.По умолчанию Spring использует Hibernate в качестве поставщика JPA по умолчанию.вы можете увидеть связанные с Hibernate зависимости в иерархии зависимостей в pom.xml, это разрешит все зависимости вашего проекта.

0 голосов
/ 05 декабря 2018

spring-boot-starter-data-jpa поставляется с hibernate по умолчанию.В моем комментарии выше, из папки рабочего пространства вашего проекта откройте терминал / cmd и введите:

mvn dependency:tree

Это разрешит все зависимости вашего проекта.Там вы сможете увидеть зависимость спящего режима.

Также из spring-boot-starter-data-jpa pom.xml в разделе зависимостей:

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.jboss.spec.javax.transaction</groupId>
                    <artifactId>jboss-transaction-api_1.2_spec</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

ссылка: https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jpa/pom.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...