Java 如何在映射器中删除警告未映射的目标属性?

Java 如何在映射器中删除警告未映射的目标属性?,java,spring,spring-data-jpa,jhipster,mapstruct,Java,Spring,Spring Data Jpa,Jhipster,Mapstruct,自从我将我的项目从jhipster 5.8.2升级到jhipster 6.5.1后,我对Mapper有很多警告 我将正确处理此警告,而不是在所有映射程序中添加此属性: (unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring", uses = {ProfilMapper.class, UserMapper.class, EntiteMapper.class, }) public interf

自从我将我的项目从jhipster 5.8.2升级到jhipster 6.5.1后,我对Mapper有很多警告

我将正确处理此警告,而不是在所有映射程序中添加此属性:

(unmappedTargetPolicy = ReportingPolicy.IGNORE)
@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);
例如,我有以下错误:

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;
}
@实体
@表(name=“权限”)
@缓存(用法=缓存并发策略。非严格读写)
公共类权限实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
@许多酮
私有Profil Profil;
@许多酮
私人用户;
@许多
@缓存(用法=缓存并发策略。非严格读写)
@JoinTable(name=“permission\u entite”,
joinColumns=@JoinColumn(name=“permissions\u id”,referencedColumnName=“id”),
inverseJoinColumns=@JoinColumn(name=“entites\u id”,referencedColumnName=“id”))
private Set entites=new HashSet();
.... 
公共集合getEntites(){
返回实体;
}
公共权限实体(设置实体){
this.entites=entites;
归还这个;
}
公共许可附录(Entite-Entite){
this.entites.add(entite);
entite.getPermissions().add(此);
归还这个;
}
公共权限移除(Entite-Entite){
此.entites.remove(entite);
entite.getPermissions().remove(此);
归还这个;
}
公共无效设置项(设置项){
this.entites=entites;
}
以及许可:

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;
}
实现可序列化的公共类权限{
私人长id;
私人长期投资;
私有字符串profilNom;
私有长用户ID;
私有字符串用户登录;
private Set entites=new HashSet();
... 
公共集合getEntites(){
返回实体;
}
公共无效设置项(设置项){
this.entites=entites;
}
地图绘制者:

(unmappedTargetPolicy = ReportingPolicy.IGNORE)
@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);
@Mapper(componentModel=“spring”,使用={ProfilMapper.class,UserMapper.class,EntiteMapper.class,})
公共接口许可映射器扩展EntityMapper{
@映射(source=“profil.id”,target=“profilId”)
@映射(source=“profil.nom”,target=“profilNom”)
@映射(source=“user.id”,target=“userId”)
@映射(source=“user.login”,target=“userLogin”)
许可toDto(许可);
@映射(source=“profilId”,target=“profil”)
@映射(source=“userId”,target=“user”)
@映射(target=“entites”,ignore=true)
实体许可(permissionto permissionto);
带有“ignore=true”的对齐不起作用

你有什么想法吗

@Mapper(componentModel = "spring", uses = {ProfilMapper.class, UserMapper.class, EntiteMapper.class, }, unmappedTargetPolicy = ReportingPolicy.IGNORE)
可以在每个映射器上定义属性,也可以使用共享映射器配置。 您的问题的解决方案在下面的链接中定义

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


这回答了你的问题吗?这回答了你的问题吗?