zoukankan      html  css  js  c++  java
  • 使用Spring Data JPA持久化数据

      Spring Data是一个非常大的伞形项目,由多个子项目组成,其中大多数子项目都关注对不同的数据库类型进行数据持久化。比较流行的几个Spring Data项目包括:

    • Spring Data JPA:基于关系型数据库进行JPA持久化。
    • Spring Data MongoDB:持久化到Mongo文档数据库。
    • Spring Data Neo4j:持久化到Neo4j图数据库。
    • Spring Data Redis:持久化到Redis key-value 存储。
    • Spring Data Cassandra:持久化到Cassandra数据库。

      Spring Data为所有项目提供了一项最有趣且最有用的特性,就是基于repository规范接口自动生成repository的功能。

    ⒈添加Spring Data JPA到项目中

      Spring Boot应用可以通过JPA starter来添加Spring Data JPA。这个starter依赖不仅会引入Spring Data JPA,还会传递性地将Hibernete作为JPA实现引入进来。

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

      如果你想要使用不同的JPA实现,那么至少需要将Hibernete依赖排除出去并将你所选择的JPA库包含进来。举例来说,如果想要使用EclipseLink来替代Hibernete,就需要像这样修改构建文件:

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-entitymanager</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>eclipselink</artifactId>
                <version>2.7.7</version>
            </dependency>

      需要注意,根据你所选择的JPA实现,这里还需要其他的配置,你可以参照此文章作为参考。https://www.baeldung.com/spring-eclipselink

    @Configuration
    public class EclipseLinkJpaConfiguration extends JpaBaseConfiguration {
        protected EclipseLinkJpaConfiguration(DataSource dataSource, JpaProperties properties, ObjectProvider<JtaTransactionManager> jtaTransactionManager) {
            super(dataSource, properties, jtaTransactionManager);
        }
    
        @Override
        protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
            return new EclipseLinkJpaVendorAdapter();
        }
    
        @Override
        protected Map<String, Object> getVendorProperties() {
            HashMap<String, Object> map = new HashMap<>();
            map.put(PersistenceUnitProperties.WEAVING, true);
            map.put(PersistenceUnitProperties.DDL_GENERATION, "drop-and-create-tables");
            return map;
        }
    }
  • 相关阅读:
    属性 Owner 不可用于 数据库...
    DHCP Client 服务无法启动,错误代码5:访问被拒绝
    删除域控中不活动的计算机
    在VMWare下LINUX中安装VMTool及共享文件夹
    ID 13508
    系统时间同步服务器地址收集
    windows 2003 登陆框 黑色解决办法
    linux下限制su权限
    linux screen + vim + taglist +ctags 使用
    gmail要求启用ActiveX控件,以及人人网没法分享的问题
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/13086635.html
Copyright © 2011-2022 走看看