myBatis下如何实现三级嵌套复杂对象的赋值

平常我们工作中基本最多两级嵌套,但是有时候难免会遇到三级嵌套的业务场景,笔者最近就碰到了,使用一般的嵌套发现赋值为空,这可难倒了菜逼的我,后来在stackoverflow的帮助下终于搜到了解决办法,完美解决了问题 ,总结一下,方便有需要的同学,下面直接上栗子:

首先上实体类:三级嵌套如下 (电站 -----> 电桩 ---->电枪)

电站实体类 (实体为JPA写法,不影响mybatis的使用)

package com.weima.cecapp.entities;

import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.BatchSize;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@NoArgsConstructor
@Data
@Entity
@Table(name = "station_info")
public class StationInfo {
   
    /**
     * Auto-generated primary key.
     */
    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "org.hibernate.id.UUIDGenerator")
    @Column(unique = true, nullable = false, updatable = false)
    private String id;

    @Column(name = "station_id")
    private String stationId;

    @Column(name = "operator_id")
    private String operatorId;

    @Column(name = "equipment_owner_id")
    private String equipmentOwnerId;

    @Column
    private String stationName;

    @Column
    private String countryCode;

    @Column
    private String areaCode;

    @Column
    private String address;

    @Column
    private String stationTel;

    @Column
    private String serviceTel;

    @Column
    private Integer stationType;

    @Column
    private Integer stationStatus;

    @Column
    private Integer parkNums;

    @Column
    private Double stationLng;

    @Column
    private Double stationLat;

    @Column
    private String siteGuide;

    @Column
    private Integer construction;

    @OneToMany(fetch = FetchType.LAZY, cascade = {
   CascadeType.ALL}, orphanRemoval = true, mappedBy = "ownerStationInfo")
    private List<StationPicture> pictures;

    @Column
    private String matchCars;

    @Column
    private String parkInfo;

    @Column
    private String busineHours;

    @Column(name = "busine_hours_in_milliseconds")
    private Long busineHoursInMilliseconds;

    @Column
    private String electricityFee;

    @Column
    private String serviceFee;

    @Column
    private String parkFee;

    @Column
    private String payment;

    @Column
    private Integer supportOrder;

    @Column
    private String remark;

    @OneToMany(fetch = FetchType.LAZY, cascade = {
   CascadeType.ALL}, orphanRemoval = true, mappedBy = "ownerStationInfo")
    @BatchSize(size = 20)
    private List<EquipmentInfo> equipmentInfos;

}

电站图片实体

package com.weima.cecapp.entities;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

@Data
@Entity
@EqualsAndHashCode(of = {
   "url"})
@T
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值