java - 如何将 id 集合转换为 beans 集合?

标签 java entity mapstruct

我有一些问题。 我有两个实体和一个 DTO。

@Entity
class X {
    @OneToMany
    Set<Y> set;
}

@Entity
class Y {
    Long id;
    @ManyToOne
    X x;
}

class XDTO {
    Set<Long> yId;
}

在这种情况下如何实现映射器?

@Mapper
public mapper() {

    XDTO toDto (X x);
    X toEntity (XDTO xDTO);
}

最佳答案

这样的事情应该有效:

@Mapper(uses=EntityMapper.class)
public interface XMapper() {

    @Mapping(source="set", target="yId")
    XDTO toDto (X x);

    @InheritInverseConfiguration
    X toEntity (XDTO xDTO);
}

public class EntityMapper {

    EntityManager em = ...;

    public <T extends BaseEntity> T resolve(long id, @TargetType Class<T> entityClass) {
        entityManager.find( entityClass, id );
}

    public long toReference(BaseEntity entity) {
        return entity != null ? entity.getId() : null;
    }
}

关于java - 如何将 id 集合转换为 beans 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45187850/

相关文章:

java - 企业 Java 实体应该是愚蠢的吗?

php - 如何访问实体属性的原始值?

java - 调用Android启动服务中的函数

java - 预先计算离屏组件尺寸?

drupal 8 BaseFieldDefinition entity_reference 带条件

java - 运行 mvn install/mvn test 时出现 Maven mapstruct 问题

java - 强制mapstruct不调用has*方法

java - 使用不同的忽略字段多次映射同一对象

java - MMORPG 中的数据管理

java - 带有 ReSTLet 的 PDFbox