public class Question implements Serializable { private int id; //問題Id private int accountId; //用戶id private String content; //問題 private Date createTime; private String createBy; private Date updateTime; private String updateBy; private int status; //問題狀態 0:邏輯刪除,1:未回答,2:已回答 private List<Answer> answers; //注意這個屬性 }
public class Answer implements Serializable{ private int id; //答案Id private int questionId; //問題Id private int managerId; //回復者Id(默認管理員) private String content; //回復內容 private Date createTime; //回復時間 private String createBy; private Date updateTime; private String updateBy; private int status; }
mybatis中的查詢語句
<select id="showAnswers" resultMap="linkedResultMap" parameterType="int"> SELECT a.id,a.`questionId`,a.`content` AS answer,a.`createTime` as aCreateTime,a.`managerId`, q.id,q.`accountId`,q.`content` AS question,q.`status`,q.`createTime` as qCreateTime FROM answers AS a LEFT JOIN questions AS q ON q.`id` = a.`questionId` WHERE q.`status` = 2 AND q.`accountId`=#{acconutId} ; </select> <resultMap type="entity.Question" id="linkedResultMap" > <!-- 注意ID的對應 --> <id property="id" column="id"/> <result property="accountId" column="accountId"/> <result property="content" column="question"/> <result property="status" column="status"/> <result property="createTime" column="qCreateTime"/> <collection property="answers" ofType="entity.Answer"> <!-- property指 Answer類中的屬性, column指數據庫中的字段名--> <id property="id" column="id"/> <result property="questionId" column="questionId"/> <result property="managerId" column="managerId"/> <result property="content" column="answer"/> <result property="createTime" column="aCreateTime"/> </collection> </resultMap>
正確返回。