Probably this might be a very simple question but I am quite lost while solving the given problem.
I've an entity called MediaResource and it has id, imageName etc. fields, on the other hand, there is MediaResourceDTO it has imageName, byte[] resourceFile etc.
The idea is fetching the image name from database and before sending MediaResourceDTO to client side, I want to load image file into MediaResourceDTO.
I don't know how to achieve this from MapStruct.
I've seen a couple of example of @Before and @After but I don't understand its use case.
Here is my source codes: MediaResourceMapper
@Mapper(componentModel = "spring", uses = {VehicleMapper.class, })
public interface MediaResourceMapper {
MediaResourceDTO mediaResourceToMediaResourceDTO(MediaResource mediaResource);
List<MediaResourceDTO> mediaResourcesToMediaResourceDTOs(List<MediaResource> mediaResources);
MediaResource mediaResourceDTOToMediaResource(MediaResourceDTO mediaResourceDTO);
List<MediaResource> mediaResourceDTOsToMediaResources(List<MediaResourceDTO> mediaResourceDTOs);
default MediaResource mediaResourceFromId(Long id) {
if (id == null) {
return null;
}
MediaResource mediaResource = new MediaResource();
mediaResource.setId(id);
return mediaResource;
}
}
MediaResource Entity
@Entity
@Table(name = "media_resource")
public class MediaResource implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "field_name")
private String fieldName;
@Column(name = "original_media_file_name")
private String originalMediaFileName;
@Column(name = "encrypted_media_file_name")
private String encryptedMediaFileName;
@Column(name = "resource_file_content_type", nullable = false)
private String resourceFileContentType;
}
MediaResourceDTO
public class MediaResourceDTO implements Serializable {
private Long id;
private String fieldName;
private String originalMediaFileName;
private String encryptedMediaFileName;
@NotNull
@Size(max = 20000000)
@Lob
private byte[] resourceFile;
private String resourceFileContentType;
//Some getter and setters
}
Thank you.