Mybatis一對多查詢resultMap示例
阿新 • • 發佈:2019-01-26
幾個實體說明,get set方法省略
1.最終返回list<CustomersTable>
CustomerTel實體:private static final long serialVersionUID = 8405954804351004292L; private String customerId; private String customerName; private List<CustomerTel> customerTels; private Integer source; private PurchaseIntention purchaseIntention; private List<Transcations> transcations; private String serverName; private String serverOrg; private String sourceName; private String sourcePhone; private String userID;
private Integer customerTelId;
private String customerTel;
private String phone;
PurchaseIntention實體:
private Integer purposeId;
private String totalPrice;
private String counties;
private String houseType;
Transcations實體
private static final long serialVersionUID = 8993887463088848093L; private Integer transcationId; private Integer buildingHousingId; private String buildingHousingName; private Integer isTeam; private Integer status; private String type; private List<LogJsonEntity> logJsons; private String sourceName; private String sourcePhone;
實現:
mybatis配置檔案+mapper中的resultmap配置
注意:The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)".<resultMap type="CustomersTable" id="ResultList"> <!-- <constructor> --> <!-- </constructor> --> <id property="userID" column="userID"></id> <result property="customerId" column="customerId" /> <result property="customerName" column="customerName" /> <result property="source" column="source" /> <association property="purchaseIntention" column="purchaseIntention" javaType="com.bean.pojo.PurchaseIntention"> <id property="purposeId" column="purposeId"/> <result property="totalPrice" column="totalPrice"/> <result property="counties" column="counties"/> </association> <collection property="customerTels" ofType="com.bean.pojoCustomerTel"> <id property="customerTelId" column="customerTelId"/> <result property="customerTel" column="customerTel"/> <result property="phone" column="phone"/> </collection> <collection property="transcations" ofType="Transcations"> <id property="transcationId" column="transcationId"/> <result property="buildingHousingId" column="buildingHousingId"/> <result property="buildingHousingName" column="buildingHousingName"/> <result property="isTeam" column="totalPrice"/> <result property="status" column="status"/> <result property="type" column="type"/> <collection property="logJsons" ofType="LogJson"> <id property="logId" column="logId"></id> <result property="logJson" column="logJson"></result> </collection> </collection> <!-- <discriminator javaType="LogJsonEntity"> --> <!-- <case value=""></case> --> <!-- </discriminator> --> </resultMap>
必須按照
constructor-->id-->result--->association。。。順序寫入
SQL:
<select id="queryList" resultMap="<span style="font-family: Arial, Helvetica, sans-serif;">ResultList</span><span style="font-family: Arial, Helvetica, sans-serif;">" ></span>
SELECT
....
</select>
結果:
{
code: "0",
msg: "success",
data: [
{
customerId: "00000870",
customerName: "HYS1321516t83",
userID: "HYS001491",
customerTels: [
{
id: 859,
phone: "13215151515"
}
],
purchaseIntention: "",
transcations: [
{
transcationId: "2374",
buildingHousingId: "104",
buildingHousingName: "(巫)",
isTeam: "0",
status: "140",
type: "new",
logJsons: [
{
time: "1445932243435",
status: "140"
},
{
time: "1445932116275",
status: "101"
},
{
time: "1445932116290",
status: "130"
}
]
},
{
transcationId: "2373",
buildingHousingId: "104",
buildingHousingName: "(巫)",
isTeam: "0",
status: "130",
type: "new",
logJsons: [
{
time: "1445931966483",
status: "101"
},
{
time: "1445931966521",
status: "130"
}
]
}
],
source: "5",
serverName: "AP",
serverOrg: "中心"
}
]
}