Модель сопоставления не отображает значения - PullRequest
0 голосов
/ 20 декабря 2018

Я сопоставляю коллекцию с коллекцией. Большую часть времени она сопоставляется успешно, но иногда происходит сбой, и я получаю нулевые значения.

    ArrayList<RiskRequestDTO> riskList = new ArrayList<>();
    Iterable<Risk> risks = RiskRepository.findAll();

    if (risks != null) {
        java.lang.reflect.Type targetListType = new TypeToken<List<riskRequestDTO>>() {
        }.getType();

        riskList = modelMapper.map(risks, targetListType);
    }

DTO Disk

У меня возникла проблема с добавлением полного кода, поэтому я удалил сеттеры и геттеры. Я подтверждаю наличие соответствующих аннотаций с сеттерами и геттерами

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "riskId", "localeTranslations", "lastModifiedAt", "lastModifiedBy"
})

public class RiskRequestDTO {

    @JsonProperty("riskId")
    private int riskId;
    @JsonProperty("localeTranslations")
    private Set<LocaleTranslation> localeTranslations;
    @JsonProperty("lastModifiedAt")
    private Date lastModifiedAt;
    @JsonProperty("lastModifiedBy")
    private UserViewDTO lastModifiedBy;

Модель риска

У меня возникла проблема с добавлением полного кода, поэтому я удалил установщики и получатели этих объектов

@Entity
@Table(name = "risk")
public class Risk {

    /**
     * risk_id , primary key.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = “risk_id")
    private int riskId;

    /**
     * last modified date.
     */
    @Column(name = "last_modified_at")
    private Date lastModifiedAt;

    /**
     * details of locale.
     */
    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinTable(name="risk_to_local_translation", joinColumns={ @JoinColumn(name="risk_id") }, inverseJoinColumns={ @JoinColumn(name="locale_translation_id") })
    private Set<LocaleTranslation> localeTranslations;

    /**
     * details of the user who updated the recommendations.
     */
    @ManyToOne( fetch = FetchType.EAGER, optional = false)
    @JoinColumn(name = "last_modified_by", nullable = false)
    private User lastModifiedBy;

Я обновил вопрос с DTO и моделью Entity

...