MapStruct отображает все логические значения в false - PullRequest
0 голосов
/ 19 апреля 2020

База данных имеет 2 значения 1 true и 1 false. Когда я получаю ответ от Почтальона, все значения отображаются как ложные. Внутренне БД хранит true как 1 и false как 0. Что является причиной того, что сопоставление ложно?

Company. 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;

CompanyDTO

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

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

Снимок значений БД

enter image description here

Снимок почтальона

enter image description here

Ответы [ 2 ]

0 голосов
/ 19 апреля 2020

Все было хорошо. Это была проблема с IntelliJ IDEA, которая не создавала сопоставления. Проблема также упоминается здесь https://github.com/mapstruct/mapstruct/issues/1690.

Чтобы решить проблему, удалите каталог target и перестройте проект, теперь все работает отлично.

0 голосов
/ 19 апреля 2020

Используйте @Column для defaultCompany, поскольку в имени столбца в БД: default_company.

@Column(name = "default_company", nullable = false)
@Type(type = "org.hibernate.type.NumericBooleanType")
private boolean defaultCompany;
...