簡體   English   中英

MapStruct 將所有 boolean 值映射為 false

[英]MapStruct is mapping all boolean values to false

數據庫有 2 個值,1 個 true 和 1 個 false。 當我收到來自 Postman 的回復時,所有值都顯示為 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);
}

數據庫值快照

在此處輸入圖像描述

Postman 快照

在此處輸入圖像描述

一切都很好。 這是 IntelliJ IDEA 未生成映射的問題。 這里也提到了這個問題https://github.com/mapstruct/mapstruct/issues/1690

要解決此問題,請刪除target目錄並重建項目,現在一切正常。

數據庫有 2 個值 1 true 和 1 false。 當我收到 Postman 的響應時,所有值都顯示為假。 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);
}

數據庫值快照

在此處輸入圖像描述

Postman 快照

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM