Achen1252 2019-07-19 11:47 采纳率: 0%
浏览 505

mybatis 多对一但是实体类中获得不到查询的结果

```DEBUG [http-bio-80-exec-2] - <== Total: 1
DEBUG [http-bio-80-exec-2] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a30581e]
DEBUG [http-bio-80-exec-2] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a30581e] from current transaction
DEBUG [http-bio-80-exec-2] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@67df626e]
DEBUG [http-bio-80-exec-2] - ==> Preparing: select m.id,u.username as u_user,u.userid as u_id,m.message from message m LEFT JOIN user u on m.user_id=u.userId limit ?,?
DEBUG [http-bio-80-exec-2] - ==> Parameters: 0(Integer), 1(Integer)
TRACE [http-bio-80-exec-2] - <== Columns: id, u_user, u_id, message
TRACE [http-bio-80-exec-2] - <== Row: 2, admin, 21, ajksgbiquldbakj,dgwouidbkaj
DEBUG [http-bio-80-exec-2] - <== Total: 1
DEBUG [http-bio-80-exec-2] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a30581e]
[Message [id=2, message=ajksgbiquldbakj,dgwouidbkaj, user=null]]
[{"keyword":null,"page":1,"rows":1}]DEBUG [http-bio-80-exec-2] - Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a30581e]
DEBUG [http-bio-80-exec-2] - Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a30581e]
[Message [id=2, message=ajksgbiquldbakj,dgwouidbkaj, user=null]]


```//实体类
```public class Message {
    private Long id;
    private String message;
    private User user;

    @Override
    public String toString() {
        return "Message [id=" + id + ", message=" + message + ", user=" + user + "]";
    }

}

```//xml文件
 <select id="queryForPage" resultMap="BaseResultMap">
  select m.id,u.username as u_user,u.userid as u_id,m.message from message m LEFT JOIN user u on m.user_id=u.userId
   <include refid="where_sql"/>  
  <if test="page!=null"> 
            limit #{start},#{rows}          
            </if>
  </select>


```//resultMap
 <resultMap id="BaseResultMap" type="com._520it.com.domain.Message">
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="message" jdbcType="VARCHAR" property="message" />
  <association property="user" javaType="com._520it.com.domain.User" columnPrefix="u_">
    <id column="userid" property="id" />
    <result column="username"  property="user"/>
  </association>
  </resultMap>


    message 实体类中的user获得不到查询出来的结果
  • 写回答

1条回答 默认 最新

  • doncha 2019-07-19 12:04
    关注
    <association property="user" javaType="com._520it.com.domain.User" columnPrefix="u_">
        <id column="userid" property="id" />
        <result column="username"  property="user"/>
      </association>
    
    这里写错了,你的查询语句是,u.username as u_user,一对多查询里面的column要写成你查询结果的别名,而不是表字段名
    改成
    
    <association property="user" javaType="com._520it.com.domain.User" columnPrefix="u_">
        <id column="u_id" property="id" />
        <result column=" u_user"  property="user"/>
      </association>
    
    评论

报告相同问题?

悬赏问题

  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面