zoukankan      html  css  js  c++  java
  • springData和jpa

    jpa总结:https://segmentfault.com/a/1190000015047290

    • ,使用了动态代理,我们的repositoryDao继承了simpleJapRepository implements jpaRepository,使用方法的同时,不用重写abstract   method
    • spring Data 两种polymorphism, 一种是静态多态spring data规制方法和注解,一种是创建自定义的语句
    • 两个概念,placeholder和动态添加语句
    • 拼接可以用string,也可以用criterialBuiler,最后createQuery

    1, entity manager实现(动态)

    2,沒有重载版本,jpaRepository自带可以,用crud不可以,

      jpaRepository extend pagingAndSortingRepository, so that It have the findAll method with sort or pageable as peremeter

      加了pageable能return一个page, 只带了sort只返回list

       默认sort method, parameter is null mean unsorted, default_direction = direction.asc

     

       多个排序条件,还有其他方式

    3,jpaRepository的find规制,需要再dao显示重载

      start with findBy,可以随意添加分页, 沒有is,一开始的by就是is

     

    4,@select注解, 需要再dao重载

     

    5,JapSpecification实现(动态)(扩充findAll)

    一目了然:https://www.jianshu.com/p/659e9715d01d

      有时候需要动态拼接语句,比如多条件查询中,要根据有无这个条件才添加  (mybatis可以用xml标签完成

    前面使用 equal 直接使用path对象(属性),进行比较即可

    但是 gt,lt,ge,le,like 不能直接使用path对象,要根据path对象指定比较的参数类型:path.as(类型的字节码对象),

    root.get("title").as(String.class) ,获得一个属性,要specify class,= root.<String>get("title")

     

    在雨燕中,有两种,一种是另一种的封装

     对比:都有需要列名,值,条件

    然后和别的condition and or or在一起

    最后添加order by,group by, asc这些

    沒有用spring data下的原始方法,事实上,springdata就帮你干了这些

     

     

     

     in条件

     join (注意:不添加条件也是关联查询,强调一个条件

    one to one

    先获得主表的root的join,在通过这个join去增加条件

     one to many 

    也一样的

     分组查询

     

    4步曲替换(由于返回类型是tuple,所以只能自己写

    获得CriteriaBuilder:entityManager.getCriteriaBuilder

    获得query:criteriaBuilder.createQuery -> createTupleQuery( is same as

    获得from:set root Object: Root<u> root = query.from(u.class)

    添加predicate: criteriaBuilder.add predicate -> add group by

    添加select:root或者select 一些root getpath

    entityManager 添加 query: TypedQuery<Tuple> typedQuery = entityManager.createQuery(tupleQuery);

    初步估计 Criteria.tuple和Multiselect是一样的

     

      root -> from -> path -> expression -> selection -> tupleElement

     

     子查询和自连接

    自连接onetoone自己(其他不加

    选出最大的(还有一些in的情况

     

  • 相关阅读:
    转换相关内置函数_hex
    转换相关内置函数_oct
    内置函数help
    内置函数_locals_变量相关
    内置函数_globals_变量相关
    智慧工地支撑平台工地一张图在线管控平台
    轨道交通GIS平台的应用分析
    基于BIM+GIS钢结构全生命周期管理平台项目
    应急指挥中心系统的研究与设计
    基于SuperMap10i 开发的全过程咨询管理平台的研究
  • 原文地址:https://www.cnblogs.com/vhyc/p/12233265.html
Copyright © 2011-2022 走看看