Я сопоставляю коллекцию с коллекцией. Большую часть времени она сопоставляется успешно, но иногда происходит сбой, и я получаю нулевые значения.
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