I am working Spring JPA Hibernate project and want to save images to Mysql database from Image Url. I am passing Orders DTO data with Image URL taken from Rest Service. How to save Image urls as Images to Database. I think we have to get the image from Url first. Please solve this problem.
OrderDO.java
@Table(name = "ORDER")
public class OrderDO implements Serializable{
@Column(name = "ORDER_NUMBER", nullable = false)
private String orderNumber;
@OneToMany(cascade = CascadeType.ALL, mappedBy="order")
private Set<OrderItemDO> items = new HashSet<>();
}
OrderItemDO.java
@Table(name = "ORDER_ITEM")
public class OrderItemDO implements Serializable{
@Column(name = "PRODUCT_NAME",nullable = false)
private String name;
@Lob
@Column(name = "IMAGE")
private byte[] image;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="ORDER_ID", referencedColumnName="ID")
private OrderDO order;
}
OrderRepository.java
@Repository
public interface OrderRepository extends CrudRepository<OrderDO, Long>{
public Page<OrderDO> findAll(Pageable pageable);
}
OrderServiceImpl.java
public class OrderServiceImpl {
@Autowired
private ModelMapper modelMapper;
@Autowired
private OrderRepository orderRepository;
private OrderDO map(Order dto) {
OrderDO orderDO = modelMapper.map(dto, OrderDO.class);
Set<OrderItemDO> itemsDO = new HashSet<>();
for(OrderItem item : dto.getItems()) {
OrderItemDO itemDO = map(item);
itemDO.setOrder(orderDO);
itemsDO.add(itemDO);
}
orderDO.setItems(itemsDO);
return orderDO;
}
public OrderItemDO map(OrderItem dto) {
OrderItemDO itemDO = modelMapper.map(dto, OrderItemDO.class);
return itemDO;
}
public Order SaveOrder(Order dto) {
OrderDO entity = this.map(dto);
entity = orderRepository.save(entity);
return this.map(entity);
}