mybatis 级联查询 ,date 类型的改变

guiguren 2017-11-11 04:36:37
本人在使用mybatis 进行级联查询时候发现,级联过来的对象类型被改变了。现在不能在页面正常的显示日期
详细见如下
主表的配置Uorders 的mapping

<resultMap id="BaseResultMap" type="com.guigu.sharecars.pojo.Uorders" >
<id column="u_oid" property="uOid" jdbcType="BIGINT" />
<result column="u_id" property="uId" jdbcType="BIGINT" />
<result column="status" property="status" jdbcType="INTEGER" />
<result column="u_from" property="uFrom" jdbcType="VARCHAR" />
<result column="u_to" property="uTo" jdbcType="VARCHAR" />
<result column="coord_from" property="coordFrom" jdbcType="VARCHAR" />
<result column="coord_to" property="coordTo" jdbcType="VARCHAR" />
<result column="plan_time" property="planTime" jdbcType="TIMESTAMP" />
<result column="go_time" property="goTime" jdbcType="TIMESTAMP" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="match_time" property="matchTime" jdbcType="TIMESTAMP" />
<result column="over_time" property="overTime" jdbcType="TIMESTAMP" />
<result column="u_num" property="uNum" jdbcType="INTEGER" />
<result column="u_description" property="uDescription" jdbcType="VARCHAR" />
<result column="distance" property="distance" jdbcType="REAL" />
<result column="c_id" property="cId" jdbcType="BIGINT" />
<result column="c_oid" property="cOid" jdbcType="BIGINT" />
<result column="c_uid" property="cUid" jdbcType="BIGINT" />
<result column="bak" property="bak" jdbcType="VARCHAR" />
<!-- 外键关联 start -->
<association column="u_id" property="user" select="getUser"/>
<!-- 外键关联 end -->
</resultMap>
<!-- 外键关联 start -->
<resultMap id="UsersResultMap" type="com.guigu.sharecars.pojo.Users" >
<id column="u_id" property="uId" jdbcType="BIGINT" />
<result column="account" property="account" jdbcType="VARCHAR" />
<result column="pwd" property="pwd" jdbcType="VARCHAR" />
<result column="u_dept" property="uDept" jdbcType="BIGINT" />
<result column="truename" property="truename" jdbcType="VARCHAR" />
<result column="tel" property="tel" jdbcType="VARCHAR" />
<result column="email" property="email" jdbcType="VARCHAR" />
<result column="u_status" property="uStatus" jdbcType="INTEGER" />
<result column="u_type" property="uType" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="last_login_time" property="lastLoginTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="update_user" property="updateUser" jdbcType="BIGINT" />
<result column="car_id" property="carId" jdbcType="BIGINT" />
<result column="usual_from" property="usualFrom" jdbcType="VARCHAR" />
<result column="usual_to" property="usualTo" jdbcType="VARCHAR" />
<result column="bak" property="bak" jdbcType="VARCHAR" />
</resultMap>
<select id="getUser" parameterType="java.lang.Long" resultType="com.guigu.sharecars.pojo.Users" resultMap="UsersResultMap">
select * from users where u_id = #{u_id}
</select>
<!-- 外键关联 end -->
<sql id="Base_Column_List" >
u_oid, u_id, status, u_from, u_to, coord_from, coord_to, plan_time, go_time, create_time,
match_time, over_time, u_num, u_description, distance, c_id, c_oid, c_uid, bak
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
select
<include refid="Base_Column_List" />
from u_orders
where u_oid = #{uOid,jdbcType=BIGINT}
</select>
.....


主表实体Uorders


public class Uorders {
private Long uOid;

private Long uId;

private Integer status;

private String uFrom;

private String uTo;

private String coordFrom;

private String coordTo;

private Date planTime;

private Date goTime;

private Date createTime;

private Date matchTime;

private Date overTime;

private Integer uNum;

private String uDescription;

private Float distance;

private Long cId;

private Long cOid;

private Long cUid;

private String bak;

private Users user;

....getter and setter....
}

副表Users 实体

public class Users {
private Long uId;

private String account;

private String pwd;

private Long uDept;

private String truename;

private String tel;

private String email;

private Integer uStatus;

private Integer uType;

private Date createTime;

private Date lastLoginTime;

private Date updateTime;

private Long updateUser;

private Long carId;

private String usualFrom;

private String usualTo;

private String bak;

...........getter and setter..........
}


jsp页面html

<li>
<label class="res-lab">处理时间</label>
<span class="res-info">
<fmt:formatDate value="${uo_d.user.createTime } " pattern="yyyy-MM-dd HH:mm:ss" />
</span>
</li>

但是结果报错

javax.el.ELException: Cannot convert Mon Aug 28 11:01:36 CST 2017 of type class java.lang.String to class java.util.Date

同一个页面中自己的时间无误 正常显示,代码如下

<li>
<label class="res-lab">创建时间</label>
<span class="res-info">
<fmt:formatDate value="${uo_d.createTime }" pattern="yyyy-MM-dd HH:mm:ss" />
</span>
</li>


试了试其它级联过来的对象,一样的错误。
感觉应该是级联过来的日期类型给我改成String了

求大神指点根本的解决方法,直接处理String日期 的JS也行

框架用的是spring +springmvc+mybatis
...全文
443 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
业余草 2017-12-30
  • 打赏
  • 举报
回复
guiguren 2017-11-11
  • 打赏
  • 举报
回复
我想了想可能并不是mybatis的原因,应该是el 表达式的问题

5,655

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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