自从我将我的项目从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;
}
以及以下许可:
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);
带有“忽略=true”的ligne不起作用。
你有什么想法吗?
@Mapper(componentModel = "spring", uses = {ProfilMapper.class, UserMapper.class, EntiteMapper.class, }, unmappedTargetPolicy = ReportingPolicy.IGNORE)
可以在每个映射器上定义属性,也可以使用共享映射器配置。下面的链接中定义了问题的解决方案
忽略未映射的属性
我正在尝试使用MapStruct实现实体和DTO之间的映射。要映射的属性之一是“结算日期”。它在DTO类中具有相同的名称,并且映射工作正常,但在编译过程中我收到了以下警告: 有没有办法让MapStruct在没有警告的情况下处理这样一个命名奇怪的属性? 我尝试使用注释来明确指定名称,但这没有帮助:
前端将这个json发送到我的API 控制器:
当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。 来源 目的地 字符串和整数之间的映射在枚举中定义
当我运行模拟器时,我得到这个错误。纠结了一个小时也想不通。新的更新来了之后就开始了。新的更新会解决这个问题吗?或者有办法解决吗?此外,忽略这个错误并创建一个应用程序会导致问题吗? 最后一个,这部分被改变了。我过去可以调整版本,现在更改时会出错。我指的是最小和目标SDK版本。 警告:将新ns http://schemas.android.com/repository/android/common/0
这是我的employee.hbm.xml: 所以,您可以注意到,在我的类中,它没有“id”属性。但是,我在数据库中创建id列,让它成为自动生成的主键。在这种情况下,我不知道应该在将我的类映射到我的数据库。如果我忽略了它,会不会是后来的一些问题呢?
我正在构建一个REST API, 和ActiveBid类 和我的泽西请求映射器,它具有获取数据的逻辑 有人能帮我吗?我不知道和卡桑德拉共事会这么难。