java实体:
package cn.tedu.note.entity;
import java.io.Serializable;
import java.util.List;
public class Post implements Serializable {
private static final long serialVersionUID = -929206547879400506L;
private Integer id;
private String content;
private Person person;
private List<Comment> comments;
public Post() {
}
public Post(Integer id, String content, Person person) {
super();
this.id = id;
this.content = content;
this.person = person;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public List<Comment> getComments() {
return comments;
}
public void setComments(List<Comment> comments) {
this.comments = comments;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Post other = (Post) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
@Override
public String toString() {
return "Post [id=" + id + ", content=" + content + ", person=" + person + ", comments=" + comments + "]";
}
}
2.SQL语句XML文件中:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="cn.tedu.note.dao.PostDao">
<resultMap type="cn.tedu.note.entity.Post"
id="postMap">
<id column="id" property="id"/>
<result column="content"
property="content"/>
<association property="person"
javaType="cn.tedu.note.entity.Person">
<id column="pid" property="id"/>
<result column="name" property="name"/>
</association>
<collection property="comments"
javaType="list"
ofType="cn.tedu.note.entity.Comment"
select="findComments"
column="id">
</collection>
</resultMap>
<select id="findComments"
parameterType="int"
resultType="cn.tedu.note.entity.Comment">
select
id,
content,
post_id
from
p_comment
where
post_id = #{id}
</select>
<select id="findPostById"
parameterType="int"
resultMap="postMap">
select
p.id,
p.content,
p.person_id,
u.id as pid,
u.name
from
p_post p
join p_person u on (p.person_id=u.id)
where
p.id=#{id}
</select>
</mapper>