我在spring mvc web应用程序中使用mybatis 3.2.3和mysql 5.5。我正在寻找一些关于如何更好地解决以下情况的建议。
有时我需要获得完全填充的Vip对象以供显示。所以我会使用以下内容:
public class Vip {
private A a1;
private B b1;
private C c1;
private D d1;
private E e1;
// ignore other properties for now
}
<resultMap id="vipMap" type="Vip" >
<id column="ID" property="id" />
<!-- ignore some properties here -->
<collection property="a1" column="A_ID" ofType="A" select="A.getAById"/>
<collection property="b1" column="B_ID" ofType="B" select="B.getBById"/>
<collection property="c1" column="C_ID" ofType="C" select="C.getCById"/>
<collection property="d1" column="D_ID" ofType="D" select="D.getDById"/>
<collection property="e1" column="E_ID" ofType="E" select="E.getEById"/>
</resultMap>
但有时我只需要一个轻量级的Vip对象,其中包含每个属性的id(例如更新),因为A,B,C,D,E属性在JSP中呈现为下拉列表。在这种情况下,我更喜欢以下内容:
public class Vip {
private Long idOfA;
private Long idOfB;
private Long idOfC;
private Long idofD;
private Long idOfE;
// ignore other properties for now
}
<resultMap id="vipMap" type="Vip" >
<id column="ID" property="id" />
<!-- ignore some properties here -->
<result column="A_ID" property="idOfA" />
<result column="B_ID" property="idOfB" />
<result column="C_ID" property="idOfC" />
<result column="D_ID" property="idOfD" />
<result column="E_ID" property="idOfE" />
</resultMap>
似乎我需要保留两个resultMaps并合并Vip类的上述两个版本,以便我可以区别对待不同的情况。这种情况有更优雅的方式吗?感谢。
答案 0 :(得分:0)
我想我会使用第一种方法和延迟加载。