Mybatis复杂嵌套关联一例

Mybatis  three entity relation:association in collection

PatentMapper.xml

   <resultMap id="BaseResultMap" type="com.yuanchuangyun.libra.entity.Patent" >
     <collection property="lawStates" resultMap="com.yuanchuangyun.libra.mapper.LawStateMapper.BaseResultMap"/>
  </resultMap>
  <select id="getById" resultMap="BaseResultMap" parameterType="java.lang.String" >
    select   <include refid="Base_Column_List" />,
             <include refid="com.yuanchuangyun.libra.mapper.LawStateMapper.Base_Column_List"/>,
             <include refid="com.yuanchuangyun.framework.mapper.system.UserMapper.Base_Column_List"/>
    from BIZ_OBJECT_PATENT PET
    left join BIZ_LAWSTATE LS on LS.OBJECT_ID = PET.ID AND LS.WHICH_OBJECT = ‘2‘
    left join PF_USER SU on SU.ID = LS.CREATE_USER_ID
  </select>

LawStateMapper.xml

  <resultMap id="BaseResultMap" type="com.yuanchuangyun.libra.entity.LawState" >
    <association property="createUser" resultMap="com.yuanchuangyun.framework.mapper.system.UserMapper.BaseResultMap"/>
  </resultMap>

Patent.java

private List<LawState> lawStates;

LawState.java

private User createUser;

时间: 2024-11-21 00:26:22

Mybatis复杂嵌套关联一例的相关文章

mybatis多对一关联

mybatis多对一关联查询实现 1.定义实体 定义实体的时候需要注意,若是双向关联,就是说双方的属性中都含有对方对象作为域属性出现, 那么在写toString()方法时需要注意,只让某一方输出即可,不要让双方的toString()都输出对方, 这样会形成递归调用,程序会出错,报堆栈溢出. Country实体类 Minsiter 实体类 2.数据库设计 a) country数据库 b) minsiter数据库 3.DAO层设计 4.service层设计 5.impl实现类 6.Controlle

Hello Mybatis 03 数据关联

ResultMap 在实际的开发中,数据库不总是我们希望看到的样子.比如我们希望User的主键是id但是数据库偏偏喜欢叫它u_id,这样一来原先的resultType似乎就失效了,不带这么玩的,整个人都不好了. 于是mybatis给出了他的方案--resultMap.把我们从复杂的命名问题中解救出来--- 在上一篇中已经用mybatis generator生成好了一个BlogMapper.xml.现在让我们分析下这个文件. 1 <?xml version="1.0" encodi

mybatis多表关联查询

mybatis多表关联查询 一:在一个对象(User )中建立另一个对象属性(userExtend): public class User implements Serializable{ private static final long serialVersionUID = 1L; /** ID */ private String id; /** 用户名 */ private String username; /** 登录密码 */ private String password; /**

Mybatis配置文件双向关联出现的问题

今天在配置mybatis的双向关联的时候,遇到了一些问题,现在在这里总结一下: 现在有学生和老师两个实体: student(N): teacher (1) 数据库的关联: Supervisor_id表示的是老师的id:是外键 Sql语句: /* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50528 Source Host : localhost:3306 Source Database : c

mybatis一对多关联查询+pagehelper-&gt;分页错误(toSolve)

mybatis一对多关联查询+pagehelper->分页错误. 现象: 网上其他人遇到的类似问题:https://segmentfault.com/q/1010000009692585 解决: todo 疑惑: 之前有人提过类似的issue(https://github.com/pagehelper/Mybatis-PageHelper/issues/149)为什么被关闭了 原文地址:https://www.cnblogs.com/goingforward/p/8492448.html

MyBatis之高级关联和集合映射(二、嵌套结果综合案例)

接上一篇,这一次,只讲嵌套结果,同样是上一次的三张表 上次忘了介绍 resultMap,补上: resultMap概念视图 constructor – 类在实例化时,用来注入结果到构造方法中 idArg – ID参数:标记结果作为ID可以帮助提高整体效能 arg – 注入到构造方法的一个普通结果 id – 一个ID结果:标记结果作为ID可以帮助提高整体效能 result – 注入到字段或JavaBean属性的普通结果 association – 一个复杂的类型关联:许多结果将包成这种类型 col

MyBatis之高级关联和集合映射(二、嵌套查询和嵌套结果小案例)

三张表,通过班级 clsId=3001 查找班级和学生的信息 1. 建表 表结构如下 create table student ( stuId number(4) primary key, stuName varchar2(20) not null, stuSex varchar2(4), stuBirthday date, classId number(4) ); create table classes ( clsId number(4) primary key, clsName varch

mybatis的嵌套查询(嵌套查询nested select和嵌套结果nested results查询)区别

(转自:http://blog.csdn.net/canot/article/details/51485955) Mybatis表现关联关系比hibernate简单,没有分那么细致one-to-many.many-to-one.one-to-one.而是只有两种association(一).collection(多),表现很简洁.下面通过一个实例,来展示一下Mybatis对于常见的一对多和多对一关系复杂映射是怎样处理的. 以最简单的用户表订单表这个最简单的一对多做示例: 对应的JavaBean:

5.mybatis一对一表关联查询

方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集,封装联表查询的数据(去除重复的数据)  SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id} 方式二:嵌套查询,通过执行另外一个SQL 映射语句来返回预期的复杂类型  SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id}  SELECT t.tid id, t.tname