前段时间刚好遇到了对象包对象又不想多写一个模型(冗余字段会增加),又不想resultMap(我项目基本没有这个),百度了下有类似的resultMap 对象包对象查询语句的写法但是没有看到resultType 的,于是就照着写了,居然成功了,所以过来分享下,会的人勿喷。有人会问多对多怎么写呢,其实就算配好了也是多次查询的,所以建议在java代码里面二次查询就可以了
先建了2个简单模型
public class Order {
private String orderno;
private Long uid;
private User user;
public String getOrderno() {
return orderno;
}
public void setOrderno(String orderno) {
this.orderno = orderno;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Long getUid() {
return uid;
}
public void setUid(Long uid) {
this.uid = uid;
}
}
简单才能说明问题
public class User {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
sql 语句
<select id="findOrder" resultType="com.ws.Order" >
select o.orderno ,
u.username as "user.username"
from order o,user u where o.uid=u.id
</select>
关键代码是
u.username as "user.username"
这句,要点一 双引号包住,要点是 别名是
resultType 模型的属性的属性 要一一对应,别写错了