zoukankan      html  css  js  c++  java
  • JPA基本用法

    jpa基本查询

    1.继承JpaRepository,生成了CRUD方法

    public void testBaseQuery() throws Exception {
      User user=new User();
      userRepository.findAll();
      userRepository.findOne(1l);
      userRepository.save(user);
      userRepository.delete(user);
      userRepository.count();
      userRepository.exists(1l);
      // ...
    }

    jpa条件查询

    主要的语法是findXXBy,readXXBy,queryXXBy,countXXBy, getXXBy后面跟属性名称:

    List<Bank> findAllBankByValidSignOrderByBankCode(Integer validSign);

    分页查询

    在参数中加入Pageable

    Page<User> findByUserName(String userName,Pageable pageable);

    使用的时候传入page和size

    如BootStrap的前台参数传入,后台controller直接用Pageable接收

       

    当然用直接new方法也是可以构建的

    PageRequest源码:

    自定义查询

    在SQL的查询方法上面使用@Query注解,如涉及到删除和修改在需要加上@Modifying

     自定义映射

    @Entity表示这是一个实体bean

    @Table映射数据库中的表,若缺省,则自动采用与类名相同的表

    @Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息(name属性为字段名)

    @Id注释指定表的主键,生成规则由@GeneratedValue设定的,其中GenerationType有四种类型,依次是

    TABLE,

    SEQUENCE,

    IDENTITY,(主键由数据库生成, 采用数据库自增长,Oracle不支持)

    AUTO

    这里使用的SEQUENCE是根据底层数据库的序列来生成主键,条件是数据库支持序列

    SequenceGenerator的默认增长为50,初始值为1

     

    多表查询映射  

    1.Dto联合

    从@Query里的语句可看出定义了一个Dto联合UploadData与Bank实体类里的属性

    @Param注解为使用:加上括号里面的注入参数(不是与方法参数相匹配的)

    参考链接https://www.cnblogs.com/zj0208/p/6008627.html

     2.@SecondaryTable 的使用

    原生sql查询

    注入实体管理器EntityManage,createNativeQuery方法为使用标准 SQL语句创建查询对象

    了解一个返回总数的方法就够了

    // 获取总数
    String countSql = "select count(*) from (" + sql + ")";
    Integer count = Integer.valueOf(entityManager.createNativeQuery(countSql).getSingleResult().toString());
  • 相关阅读:
    Python笔记:高阶函数
    linux C生成UUID的方法
    c语言连接mysql完整演示
    linux下C语言连接mysql数据库演示(在控制台编译的)
    mysql版本问题,导致的mysql.user表下面的字段变成了authentication_string
    选择排序算法
    汉诺塔递归实现
    操作系统复习第一章
    二叉树的基本操作
    字符串的模式匹配算法
  • 原文地址:https://www.cnblogs.com/wutongshu-master/p/11851219.html
Copyright © 2011-2022 走看看