Я новичок в весенней загрузке. У меня есть приложение весенней загрузки и интерфейс в Angular 8 и postgres DB. Я использую MapStruct
для отображения между сущностью и DTO. У меня есть объект Product
, и создание новой записи и обновление работает нормально. Теперь я хочу включить изображение в сущность и сохранить в БД. Я искал и обнаружил, что все говорят, что используют метод MultipartFile
, но каждое решение содержит только сохранение изображения, а не данные объекта. Есть ли способ сохранить изображение вместе со свойствами объекта? Как MapStruct ведет себя вместе с изображением, поскольку изображение должно быть включено в DTO? Любые решения?
Продукт
@Entity
@Table(name = "products", indexes = {@Index(name= "part_number_index", columnList = "part_number", unique = true)})
public class Product extends UserDateAudit
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
@Column(name = "part_number", nullable = false)
@Size(max = 20)
private String partNumber;
@NotBlank
@Size(max = 255)
private String description;
@OneToMany(
mappedBy = "product",
cascade = CascadeType.ALL,
fetch = FetchType.EAGER,
orphanRemoval = true
)
@Fetch(FetchMode.SELECT)
private List<ReplaceNumber> replaceNumbers = new ArrayList<>();
@ManyToOne
@JoinColumn(name = "product_manufacturer_id", referencedColumnName = "id")
private ProductManufacturer manufacturer;
@ManyToOne
@JoinColumn(name = "product_model_id", referencedColumnName = "id")
private ProductModel model;
@ManyToOne
@JoinColumn(name = "product_category_id", referencedColumnName = "id")
private ProductCategory category;
@Column(name = "cost", nullable = false)
@DecimalMin(message = "Cost should be greater than 1", value = "1")
private float cost;
@Column(name = "price", nullable = false)
@DecimalMin(message = "Price should be greater than 0", value = "0")
private float price;
@Lob
private byte[] image;
}