結論:未作映射的字段沒有值,但是數據庫中實際是有值的,說明如果帶下划線的字段未作映射,返回值是不會有值的,只有映射了的字段以及不帶下划線的字段(默認映射)才有返回值
1、bean屬性
public class KnowledgeAttr {
private Integer Id; //不許為空
private Integer pointId; //不許為空 知識元id
private Integer domainAttrId; //不許為空 知識元屬性id
private String attrName; // 知識元屬性名稱
private String attrValue;
private Integer attrState; //不許為空
private String attrValueFinal; // 知識元屬性值
private String uuid;
2、數據庫返回值映射,此處只映射了2個字段,(因為我們只需要這兩個字段),可以看到還有幾個字段帶下划線沒有映射。
@Select("SELECT * FROM KNOWLEDGE_POINT_ATTR WHERE POINT_ID=#{pointId}")
@Results(value = {
@Result(property = "attrName", column = "ATTR_NAME"),
@Result(property = "attrValueFinal", column = "ATTR_VALUE_FINAL")})
List<KnowledgeAttr> getRepeatJudge(Integer pointId);
3、controller調用返回對象KnowledgeAttr,如果正常,只有不帶下划線的字段和已經映射到字段才有值
List<KnowledgeAttr> nameAndValueList = insertDataService.getRepeatJudge(knowledgePoint.getId());
4、可以看到返回值做了映射的 attrName,attrValueFinal 有值,未作映射的domainAttrId沒有值,但是數據庫中實際是有值的,說明如果帶下划線的字段未作映射,返回值是不會有值的!!