zoukankan      html  css  js  c++  java
  • Hibernate若干知识点

    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 <>?

  • 相关阅读:
    20159302 《网络攻击与防范》第三周学习总结
    Json序列化空时间字段出异常
    IIS 原理
    谴责盛大Bambook 的ADB.EXE流氓进程
    Fix: ADB server didn’t ACK
    在线UI设计
    解决装Windows蓝屏问题。
    如何成为一个C++高级程序员
    Python编程规范及性能优化
    iDempiere 使用指南 插件安装过程
  • 原文地址:https://www.cnblogs.com/jizhong/p/9908936.html
Copyright © 2011-2022 走看看