Cześć, mam problem z mapowaniem DAO na DTO w javie za pomocą mapstruct. Próbuję zmapować w następujący sposób:
Mapper:
@Component
@Mapper(componentModel = "spring")
public interface AnimalMapper {
@Mapping(target = "commentPoster", source = "animal.commentsWithCommenters.commentPoster")
@Mapping(target = "commentContent", source = "animal.commentsWithCommenters.commentContent")
AnimalResponse toResponse(Animal animal);
}
DTO
@Getter
@Setter
@NoArgsConstructor
public class AnimalResponse {
private Long id;
private String name;
private String description;
private Integer age;
private String photoLink;
private Boolean isAnimalOnTheWalk;
private String commentPoster;
private String commentContent;
}
DAO
@Entity
@Table(name = "animal")
@Data
public class Animal {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
private Integer age;
private String photoLink;
private Boolean isAnimalOnTheWalk;
private String usernameOfThePersonOnTheWalk;
@OneToMany(mappedBy = "animal")
private List <Comment> commentsWithCommenters;
}
Comment
@Entity
@Table(name = "comment")
@Data
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String commentPoster;
private String commentContent;
@ManyToOne(fetch = FetchType.LAZY)
@NotNull
@JoinColumn(name = "zwierze_id")
private Animal animal;
}
I otrzymuję taki błąd:
21:20
java: The type of parameter "animal" has no property named "commentsWithCommenters.commentPoster".
Ktoś wie co może być przyczyną?