`
shangtang004
  • 浏览: 32367 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一对多映射解析_n+1问题

阅读更多

iBATIS一对多映射之中继VO如下属性:

  1. public class RelayInfoVO {  
  2.   //中继信息  
  3.   private String bswitcherNames;//本端局  
  4.   private String dswitcherNames;//对端局  
  5.   private String signalStatCount;//信令数  
  6.   private String relayStatCount;//中继数  
  7.   private List signalVO;//信令List,用来存放信令List的  
  8.     
  9.   ……  

iBATIS一对多映射信令VO如下属性:

  1. public class SignalInfoVO {  
  2.   //信令信息  
  3.   private String bswitchers;//本端局  
  4.   private String dswitchers;//对端局  
  5.   private String signalType;//信令类型  
  6.   private String signalCount;//信令个数  
  7.  
  8.   ……  

iBATIS的XML如下配置:

注:为中继

VO,column="{bswitcherNames=bswitcherName,dswitcherNames=DSWITCHERNAME}" 是为select="getSignalInfo"所传递的参数。select="getSignalInfo"为所要调用的SELECT查询语句。

  1. ﹤resultMap id="RelayInfoVO-Result-list" class="com.harvest.ermis.rscount.domain.RelayInfoVO"﹥  
  2.   ﹤result property="bswitcherNames" column="BSWITCHERNAME" nullValue=""/﹥  
  3.   ﹤result property="dswitcherNames" column="DSWITCHERNAME" nullValue=""/﹥  
  4.   ﹤result property="signalStatCount" column="SIGNALSTATCOUNT" nullValue=""/﹥  
  5.   ﹤result property="relayStatCount" column="RELAYSTATCOUNT" nullValue=""/﹥  
  6.   ﹤result property="signalVO" column="{bswitcherNames=bswitcherName,dswitcherNames=DSWITCHERNAME}" select="getSignalInfo"/﹥  
  7. ﹤/resultMap﹥ 

注:为信令VO

  1. ﹤resultMap id="SignalInfoVO-Result-list" class="com.harvest.ermis.rscount.domain.SignalInfoVO"﹥  
  2.   ﹤result property="bswitchers" column="BSWITCHERS" nullValue=""/﹥  
  3.   ﹤result property="dswitchers" column="DSWITCHERS" nullValue=""/﹥  
  4.   ﹤result property="signalType" column="SIGNALTYPE" nullValue=""/﹥  
  5.   ﹤result property="signalCount" column="SIGCOUTN" nullValue=""/﹥  
  6. ﹤/resultMap﹥  
  7.  
  8.  
  9.  
  10. ﹤select id="getRSInfo" resultMap="RelayInfoVO-Result-list"﹥  
  11.     
  12.     ……  
  13.  
  14. ﹤/select﹥  
  15.  
  16.  
  17. elect id="getSignalInfo" resultMap="SignalInfoVO-Result-list"﹥  
  18.       select c.switcherName as BSWITCHERS,b.switcherName as DSWITCHERS,linkType as SIGNALTYPE,count(*) as SIGCOUTN  
  19.       where   
  20.         c.switcherName=#bswitcherNames#  
  21.       and b.switcherName=#dswitcherNames#  
  22.       group by b.switcherName,b.ATTACHING,c.switcherName,linktype  
  23.       order by c.switcherName,b.SWITCHERORDER,linktype  
  24. ﹤/select﹥ 

上面会有N+1问题,但提供了传多参方法。

 

下面解决List<String>映射问题:

<resultMap class="TaskUser" id="TaskUserResult" groupBy="patNo">
   <result property="patNo" column="T_NO" />
   <result property="userList" resultMap="PatTask.StringList"/>
  </resultMap>
 
  <resultMap id="StringList" class="java.lang.String">
   <result property="" column="NAME"/>
  </resultMap>

 

<select id="selectAllPatNoWithUser" resultMap="TaskUserResult">
   <![CDATA[
    select t.T_NO,u.NAME FROM pat_task t,tblUser u where t.T_ExUID=u.id;
   ]]>
  </select>

分享到:
评论

相关推荐

    用于在基于JPA的Spring Boot Java应用程序中自动检测和断言“N+1选择问题”发生的工具,并在一般情况下发现JPA发出的SQL语句的来源- adgadev/jplusone

    1. **N+1选择问题**:当我们在查询主数据的同时,没有一次性获取所有关联数据,而是对每条主数据单独发起一次关联查询时,就会出现N+1问题。例如,对于一个用户列表,如果每个用户都有多个订单,那么原本只需一次...

    铜川市一中学年度第一学期高一年级期中考试.doc

    16. **数列的通项公式**:数列 {a_n} 中,a_1=2,且 a_{n+1}=a_n+3,这是一个等差数列,可以通过首项和公差求出通项公式。 17. **二次不等式的解集**:对于不等式 mx^2-(m-1)x+m-1≥0,解集非空,意味着判别式大于...

    向量组及线性组合大连海事大学本科教学质量与教学改革工程.pptx

    具体来说,向量 \( \mathbf{b} \) 能由向量组 \( \mathbf{A} \) 线性表示的充分必要条件是矩阵 \( [\mathbf{a}_1, \mathbf{a}_2, ..., \mathbf{a}_m, \mathbf{b}] \) 的秩等于 \( m+1 \)(即矩阵 \( [\mathbf{a}_1, ...

    2015年软考数据库系统工程师考试真题加答案解析(上午+下午)

    当用补码表示有符号定点小数时,最高位作为符号位,因此可以表示的数为\(2^{n-1}\)个正数和\(2^{n-1}-1\)个负数加上一个零,总共\(2^{n-1} + (2^{n-1} - 1) + 1 = 2^n\)个不同的有符号定点小数。 - **答案解析**:...

    10级数值分析期中考试A.pdf

    * prod((x - xi) / (xi - xi')),其中ξ在节点之间,f^(n+1)是函数的(n+1)阶导数。 3. 牛顿法求解非线性方程f(x) = 0的递归规则是:______,并且在多重根附近,其收敛速度是______。 答案:牛顿法的迭代公式是x_{...

    10 映射-- 多对多(老师与学生)

    - `fetch`: 控制关联的加载策略,可以是`select`(默认)或`join`,后者可以避免N+1查询问题。 - `cascade`: 可以设置级联操作,比如`save-update`、`all`等,决定操作一个实体时是否同时处理关联的实体。 3. **...

    hibernate一对多代码

    本文将详细解析"hibernate一对多映射"的概念、配置及其实现过程,以帮助理解并掌握这一核心特性。 首先,我们要明白在关系型数据库中,"一对多"关系意味着一个实体(比如一个部门)可以有多个相关实体(如部门下的...

    Python实现FM算法解析

    \[y = w_0 + \sum_{i=1}^{n} w_i x_i + \sum_{i=1}^{n}\sum_{j=i+1}^{n} v_i^T v_j x_i x_j\] 这里,\(v_i\) 和 \(v_j\) 分别是特征 \(x_i\) 和 \(x_j\) 的隐向量,通过计算两个隐向量的点积并乘以特征值的乘积来...

    上学期湖南省长沙市天心高一数学期末考试卷 试题.doc

    21. **二次函数的顶点坐标与数列性质**:二次函数f(x)=x^2-2(n+1)x+n^2+5n+3的顶点纵坐标构成数列{a_n},判断数列是等差还是等比,然后求出公差d或公比q及通项an。 22. **最优化问题**:涉及到线性规划的问题,考虑...

    Hibernate基于外键的一对多单向关联

    9. **查询优化**:在一对多关联中,需要注意避免N+1查询问题,通过JOIN查询或子查询优化性能。 10. **数据库设计**:在产品.sql文件中,可能包含创建商品表的SQL,外键可能设在商品表上,指向订单表的主键,以实现...

    Python人工智能课程 AI算法课程 Python机器学习与深度学习 4.多元回归与逻辑回归 共69页.pdf

    - **Sigmoid 函数**: 逻辑回归的核心函数,用于将线性回归的结果映射到 [0, 1] 区间内,表示属于某个类别的概率。 \[ g(z) = \frac{1}{1+e^{-z}} \] - **目标函数**: 逻辑回归的目标函数通常是最大化对数似然函数...

    hibernate如何实现一对多的关联源代码

    然而,过于频繁的立即加载可能会导致N+1查询问题,所以需要根据实际情况选择合适的加载策略。 ### 4. 冲突与解决 在并发环境中,可能出现多个线程同时修改同一组关联关系的情况,这可能导致数据不一致。因此,需要...

    河南省罗山高中2016届高三数学复习精选练习映射2理含解析

    - 满射(一对多映射):如果A中的每个元素都至少映射到B中的一个元素,但B中的元素可能有多个A中的元素映射到,那么f是满射。 - 双射(一一对应):既是单射又是满射的映射,A中的每个元素都与B中的唯一一个元素相...

    Hibernate一对多关联实例

    这将返回包含订单的用户列表,由于使用了`join fetch`,关联的对象会在同一个查询中加载,避免了N+1查询问题。 六、关联更新(update) 1. 更新一方实体时,Hibernate会自动跟踪其关联的多方实体,只要不改变关联关系...

    Cantalan数有关的组合问题

    给定一个凸\(n+1\)边形,我们可以通过绘制最多\(n-2\)条互不相交的对角线将其划分成\(n-1\)个三角形区域,这种划分方法被称为三角剖分。对于任意给定的\(n\),不同的三角剖分方法总数被定义为Catalan数\(C_n\)。 ...

    mandelbrot-projekt-源码.rar

    每个点在集合内的判定基于一个简单的迭代过程,即Z_{n+1} = Z_n^2 + C,其中Z_0 = 0,C是复平面上的点,Z_n是迭代的中间结果。如果这个过程在某个预设的最大迭代次数内没有发散(即|Z_n|保持有限),那么点C就被认为...

    数论模板精心整编

    根据提供的文档信息,我们可以整理出一系列与数论相关的知识点,并对每个部分进行详细的解析和解释。 ### 1. 负数取模 在计算机科学中,取模运算通常用于获取除法运算的余数。当涉及到负数时,取模操作可能会有...

    SVM推导-draco.docx

    - **函数间隔**: 给定一个训练样本\( (x_i, y_i) \),其中\( x_i \)为输入向量,\( y_i \)为类别标签(+1或-1)。假设存在一个超平面\( w^Tx + b = 0 \),则样本点到超平面的函数间隔定义为\( y_i(w^Tx_i + b) \)。...

Global site tag (gtag.js) - Google Analytics