首页 > 解决方案 > MapStruct 将所有布尔值映射为 false

问题描述

数据库有 2 个值 1 true 和 1 false。当我收到邮递员的回复时,所有值都显示为假。DB 内部将 true 存储为 1,将 false 存储为 0。是什么导致映射为 false?

公司.java

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotBlank
@Size(max = 60)
private String name;

@Size(max = 40)
private String vat;

@Size(max = 12)
private String contact;

private boolean defaultCompany;

公司DTO

private Long id;

@NotBlank
@Size(max = 60)
private String name;

@Size(max = 40)
private String vat;

@Size(max = 12)
private String contact;

private boolean defaultCompany;

映射器

@Mapper(componentModel = "spring")
public interface CompanyMapper
{
    CompanyDTO toCompanyDTO(Company company);
    Company toCompany(CompanyDTO companyDTO);
    List<CompanyDTO> toCompanyDTOS(List<Company> companies);
}

数据库值快照

在此处输入图像描述

邮递员快照

在此处输入图像描述

标签: javaspring-bootdtomapstruct

解决方案


一切都很好。这是 IntelliJ IDEA 不生成映射的问题。这里也提到了这个问题https://github.com/mapstruct/mapstruct/issues/1690

要解决此问题,请删除target目录并重建项目,现在一切正常。


推荐阅读