美文网首页
Spring Boot Jpa

Spring Boot Jpa

作者: XII01 | 来源:发表于2020-05-17 13:48 被阅读0次

    jpa (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范。它为 Java 开发人员提供了一种对象/关联映射工具来管理 Java 应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术,结束现在 Hibernate,TopLink,JDO 等 ORM 框架各自为营的局面
    现在pom.xml 配置下面代码

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    
    1. 继承 JpaRepository
    package com.wxx.springboot.model;
    
    import org.springframework.data.jpa.repository.JpaRepository;
    
    /**
     * @authorxxw
     */
    public interface UserRepository extends JpaRepository<User1,Long> {
        User1 findByUserName(String userName);
        User1 findByUserNameOrEmail(String username, String email);
    }
    

    查看里面的默认方法

    
    
    package org.springframework.data.jpa.repository;
    
    import java.util.List;
    import org.springframework.data.domain.Example;
    import org.springframework.data.domain.Sort;
    import org.springframework.data.repository.NoRepositoryBean;
    import org.springframework.data.repository.PagingAndSortingRepository;
    import org.springframework.data.repository.query.QueryByExampleExecutor;
    
    @NoRepositoryBean
    public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
        List<T> findAll();
    
        List<T> findAll(Sort var1);
    
        List<T> findAllById(Iterable<ID> var1);
    
        <S extends T> List<S> saveAll(Iterable<S> var1);
    
        void flush();
    
        <S extends T> S saveAndFlush(S var1);
    
        void deleteInBatch(Iterable<T> var1);
    
        void deleteAllInBatch();
    
        T getOne(ID var1);
    
        <S extends T> List<S> findAll(Example<S> var1);
    
        <S extends T> List<S> findAll(Example<S> var1, Sort var2);
    }
    
    

    根据方法名生成SQL

      User1 findByUserName(String userName);
    

    分页查询

        @Test
        public void testPageQuery() throws Exception {
            int page=1,size=10;
            Sort sort =  Sort.by("id");
            Pageable pageable = PageRequest.of(page, size, sort);
            userRepository.findALL(pageable);
            userRepository.findByUserName("testName", pageable);
        }
    

    自定义sql 查询

        @Modifying
        @Query("update User u set u.userName = ?1 where u.id = ?2")
        int modifyByIdAndUserId(String  userName, Long id);
    
        /**
         * @Transactional 对事务的支持,查询超时的设置等
         * @Modifying 删除和修改在需要加
         * @Query 查询注解
         * @param id
         */
        @Transactional
        @Modifying
        @Query("delete from User where id = ?1")
        void deleteByUserId(Long id);
    
        @Transactional(timeout=10)
        @Query("select u from User u where u.emailAddress = ?1")
        User1 findByEmailAddress(String emailAddress);
    

    相关文章

      网友评论

          本文标题:Spring Boot Jpa

          本文链接:https://www.haomeiwen.com/subject/nlyjohtx.html