gpt4 book ai didi

java - 如何删除Mapper中警告未映射的目标属性?

转载 作者:行者123 更新时间:2023-12-02 09:12:25 28 4
gpt4 key购买 nike

自从我将项目从 jhipster 5.8.2 升级到 jhipster 6.5.1 后,我收到了很多关于 Mapper 的警告。

我会正确对待这个警告,而不是在所有映射器中添加这个属性:

(unmappedTargetPolicy = ReportingPolicy.IGNORE)

例如我有这个错误:

service\mapper\PermissionMapper.java:25: warning: Unmapped target property: "removeEntite".
Permission toEntity(PermissionDTO permissionDTO);

在我的对象权限中,我有:

@Entity
@Table(name = "permission")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Permission implements Serializable {

private static final long serialVersionUID = 1L;

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

@ManyToOne
private Profil profil;

@ManyToOne
private User user;

@ManyToMany
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@JoinTable(name = "permission_entite",
joinColumns = @JoinColumn(name = "permissions_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "entites_id", referencedColumnName = "id"))
private Set<Entite> entites = new HashSet<>();

....
public Set<Entite> getEntites() {
return entites;
}

public Permission entites(Set<Entite> entites) {
this.entites = entites;
return this;
}

public Permission addEntite(Entite entite) {
this.entites.add(entite);
entite.getPermissions().add(this);
return this;
}

public Permission removeEntite(Entite entite) {
this.entites.remove(entite);
entite.getPermissions().remove(this);
return this;
}

public void setEntites(Set<Entite> entites) {
this.entites = entites;
}

和 PermissionDTO :

public class PermissionDTO implements Serializable {

private Long id;

private Long profilId;

private String profilNom;

private Long userId;

private String userLogin;

private Set<EntiteDTO> entites = new HashSet<>();

...

public Set<EntiteDTO> getEntites() {
return entites;
}

public void setEntites(Set<EntiteDTO> entites) {
this.entites = entites;
}

和映射器:

@Mapper(componentModel = "spring", uses = {ProfilMapper.class, UserMapper.class, EntiteMapper.class, })
public interface PermissionMapper extends EntityMapper <PermissionDTO, Permission> {

@Mapping(source = "profil.id", target = "profilId")
@Mapping(source = "profil.nom", target = "profilNom")

@Mapping(source = "user.id", target = "userId")
@Mapping(source = "user.login", target = "userLogin")
PermissionDTO toDto(Permission permission);

@Mapping(source = "profilId", target = "profil")

@Mapping(source = "userId", target = "user")
@Mapping(target = "entites", ignore = true)
Permission toEntity(PermissionDTO permissionDTO);

带有“ignore = true”的ligne不起作用。

请问你有什么想法吗?

最佳答案

@Mapper(componentModel = "spring", uses = {ProfilMapper.class, UserMapper.class, EntiteMapper.class, }, unmappedTargetPolicy = ReportingPolicy.IGNORE)

您可以在每个映射器上定义属性或使用共享映射器配置。您的问题的解决方案在下面的链接中定义

Ignore unmapped properties

关于java - 如何删除Mapper中警告未映射的目标属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59303398/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com