mybatis一对一映射,查询出来的结果有四条,映射到结果集就只有一条了

爱摸鱼的开发者 2016-10-25 09:49:16
mapping

<resultMap id="BaseResultMap" type="com.teaching.pojo.Project" >
<id column="PID" property="pid" jdbcType="INTEGER" />
<result column="PName" property="pname" jdbcType="CHAR" />
<result column="FPID" property="fpid" jdbcType="INTEGER" />
<result column="CUID" property="cuid" jdbcType="INTEGER" />
<result column="CTime" property="ctime" jdbcType="TIMESTAMP" />
<result column="BTime" property="btime" jdbcType="TIMESTAMP" />
<result column="ETime" property="etime" jdbcType="TIMESTAMP" />
<result column="status" property="status" jdbcType="CHAR" />
<result column="PType" property="ptype" jdbcType="CHAR" />
<result column="TID" property="tid" jdbcType="INTEGER" />
</resultMap>


<resultMap type="ProjectCustom" id="result" extends="BaseResultMap">
<association property="bUser" javaType="UserCustom" >
<id column="UID" property="uid" jdbcType="INTEGER" />
<result column="UserN" property="usern" jdbcType="CHAR" />
<result column="UPassword" property="upassword" jdbcType="CHAR" />
<result column="UName" property="uname" jdbcType="VARCHAR" />
<result column="UImage" property="uimage" jdbcType="VARCHAR" />
<result column="UPhone" property="uphone" jdbcType="VARCHAR" />
<result column="UDept" property="udept" jdbcType="CHAR" />
<result column="UClass" property="uclass" jdbcType="CHAR" />
<result column="RName" property="rname" jdbcType="CHAR" />
</association>
</resultMap>

<sql id="Base_Column_List" >
PID, PName, FPID, CUID, CTime, BTime, ETime, status, PType, TID
</sql>

<select id="selectProjectCustom" resultMap="result" parameterType="java.lang.Integer">
SELECT p.* ,u.*
FROM evaluation e,user u ,project p
where PUID = #{puid,jdbcType=INTEGER} and Scrose = -1 and u.UID= e.BUID and p.PID = e.FPID
GROUP BY BUID
</select>




ProjectCustom类

public class ProjectCustom extends Project{


private UserCustom bUser;


public UserCustom getbUser() {
return bUser;
}
public void setbUser(UserCustom bUser) {
this.bUser = bUser;
}

private List<ItemsCustom> itemslist ; //每个项目下的单项
private float scrose;//项目成绩

public List<ItemsCustom> getItemslist() {
return itemslist;
}
public void setItemslist(List<ItemsCustom> itemslist) {
this.itemslist = itemslist;
}
public float getScrose() {
return scrose;
}
public void setScrose(float scrose) {
this.scrose = scrose;
}
@Override
public String toString() {
return /*"自定义项目: [uname=" + uname + ", buid=" + buid +*/ ", bUser="
+ bUser + ", itemslist=" + itemslist + ", scrose=" + scrose
+ "]";
}



}





...全文
487 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
javabro 2020-04-07
  • 打赏
  • 举报
回复
此属性 property="bUser" 放在Project 类
鱼公 2016-10-26
  • 打赏
  • 举报
回复
贴出你接收返回结果的代码吧,你要拿到四条不应该用list接收返回结果吗?
hersing 2016-10-25
  • 打赏
  • 举报
回复
4条应该是相同的数据,在你配置的resultMap标签下,存在标签
<id column="PID" property="pid" jdbcType="INTEGER" />
代表去重,所以只会显示一条
nikyotensai 2016-10-25
  • 打赏
  • 举报
回复
你在哪塞值的

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧