1.主从表

主表A与从表B关联:

若存在1:N关系,查询条件为B表字段写法为:

list.add(criteriaBuilder.like(root.joinList("projectContacts").get("pcontacts").as(String.class), "%" + search.getPcontacts() + "%"));

如果是1:1关系,写法如下:

roleConditions.add(cb.equal(root.join("projectThin", JoinType.INNER).get("industryType").as(String.class), roleindustry.getIndustryCode()));

如果表A与B关系为a.***=B.** and a.***=B.***,则写法为:

ListJoin<UvPcmerchants, List<UtMerFeedback>> taskJoin = root.joinList("merFeedbackList", JoinType.LEFT);
list.add(cb.and(cb.equal(taskJoin.get("depid"), par.getUserDept()),cb.notEqual(taskJoin.get("status"),"N")));

2.避免多次关联同一个表的情况,可按如下写法:

Join<UtProjectReport, UtProjectThin> thinJoin = root.join("projectThin", JoinType.INNER);
list.add(cb.equal(thinJoin.get("issubmit").as(String.class), "3"));
list.add(cb.notEqual(thinJoin.get("pstatus").as(String.class), "zz"));
list.add(cb.notEqual(thinJoin.get("pstatus").as(String.class), "fz"));

翻译后的SQL语句为:

INNER JOIN ut_project utprojectt2_ ON utprojectr0_.pid = utprojectt2_.PID
WHERE
uvprojectr1_.PRC_STATUS =?
AND uvprojectr1_.PRC_TYPE =?
AND utprojectt2_.ISSUBMIT =?
AND utprojectt2_.PSTATUS <>?
AND utprojectt2_.PSTATUS <>?

Hibernate若干知识点的更多相关文章

  1. Hibernate进阶知识点必备

    hibernate.cfg.xml的常用的配置 hibernate.show_sql:是否把Hibernate运行时的SQL语句输出到控制台,编码阶段便于测试,为true的好 -hibernate.f ...

  2. hibernate重要知识点总结

    一.使用注解方式-----实体和表之间的映射 配置spring的applicationContext.xml文件: <bean id="sessionFactory" cla ...

  3. Hibernate 零散知识点

    1 get方法和load方法查询时的区别: 如果在缓存中没有找到相应的对象,get会直接访问数据库并返回一个完全初始化的对象,过程中可能涉及多次数据库调用:而load会返回一个代理对象,只有在对象ge ...

  4. struts2、hibernate的知识点

    以下内容是我在复习struts2.hibernate和spring的时候记下得到,部分书上找不到的内容来自网络 以下是网络部分的原文网站: http://blog.csdn.net/frankaqi/ ...

  5. C语言若干知识点归记

    一.C语言指针学习架构 1.基本数据类型---指针 2.字符串---指针 3.数组---指针 4.函数---指针 5.结构体---指针 6.共用体---指针 7.枚举---指针 8.位域---指针 9 ...

  6. Hibernate框架第一天

    **框架和CRM项目的整体介绍** 1. 什么是CRM * CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间 ...

  7. Hibernate学习第一天

    Hibernate框架第一天 今天任务 1. 使用Hibernate框架完成对客户的增删改查的操作 教学导航 1. 能够说出Hibernate的执行流程 2. 能够独立使用Hibernate框架完成增 ...

  8. margin collapse 之父子关系的DIV

    打算花点时间将知识整理一下,虽然平时现用现查都能完成工作,可是当遇到面试这种事情的时候,临时查就来不及了... 关于margin,整理若干知识点如下: 一:父子关系的DIV标签以及未加margin时的 ...

  9. [转载]AI教师正来势汹汹,教师饭碗堪优

    (原文标题:开门,机器人老师来了) 一. 开门,机器人老师到了 国庆几天,河南刚刚上演一幕新科技的大戏: 计算机和人展开了为期四天的人机大战.这一次,对垒的双方不再是李世乭和阿尔法狗,而是教师和人工智 ...

随机推荐

  1. mysqlQL 5.7 安装报错CMake Error at cmake/boost.cmake:81 (MESSAGE)

    CMake Error at cmake/boost.cmake:81 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BO ...

  2. 2018-4-12 数学建模MATLAB常用的一些函数

    一.求函数的极限问题 limit(fun,x,y,str) 意义:fun为所求极限的函数,x代表变量,y代表变量的极限值,str代表这个极限的类型,常用的参数是right,left. 如果是多个变量的 ...

  3. linux ps 按进程消耗内存资源大小排序

    linux ps 关于sort的解释 --sort spec specify sorting order. Sorting syntax is [+|-]key[,[+|-]key[,...]] Ch ...

  4. HD ACM 水题顺序

    原文传送门:http://acm.hdu.edu.cn/ 第一阶段:开始入门吧!(15天,53题) 一.输入输出练习(2天,10题) 1000.1089-1096.1001 二.简单操作:(2-4天, ...

  5. QT | 一些学习心得

    1. 如何使控件随着窗口大小变化而自动填充? 选中控件中最外层的那个控件,如centralWidget(不要去选中内部的小控件,这样能够保证内部的相对位置) 然后对centralWidget选择布局方 ...

  6. mysql 创建用户、设置权限

    MySQL创建用户与授权 一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用 ...

  7. go chan 入门代码

    package main import ( "fmt" "sync" "time" ) // 生产数据 func producer(num ...

  8. Vue基础之内部指令(下)

    v-on绑定事件监听器 直接撸代码: <div id="app"> <h2>计数器</h2> number:{{number}} <but ...

  9. 实验九 ZStack 广播通信实验

    实验九 ZStack 广播通信实验[实验目的]1. 了解 ZigBee 广播通信的原理2. 掌握在 ZigBee 网络中进行广播通信的方法[实验设备]1. 装有 IAR 开发工具的 PC 机一台2.  ...

  10. RedHat7系列(Centos/Debian) FireWall 防火墙 设置

    RedHat 7 系列之后 系统把默认的iptables 换成了 Firewall 所以我们要适应 这个新的防火墙管理 -------------------服务相关----------------- ...