Я хочу загрузить файл в базу данных с отношениями OneToMany с другим объектом. Я использую Spring 4 с Thymeleaf.
У меня есть два объекта: изображение и магазин.
Магазин:
@Entity
@Table(name = "store")
public class Store {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String email;
private String nombre;
@ManyToOne
@JoinColumn(name="id_image")
private Image im;
//public getters and setters
Изображение:
@Entity
@Table(name = "images")
public class Image {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private byte[] image;
@OneToMany(mappedBy="im",cascade= CascadeType.ALL)
private Set<Store> stores;
Форма магазина:
<form th:action="@{/addstore}" th:object="${store}" method="post">
<fieldset>
<table>
<tr>
<td><label>E-mail</label></td>
<td><input type="text" th:field="*{email}" /></td>
</tr>
<tr>
<td><label>Nombre</label></td>
<td><input type="text" th:field="*{nombre}" /></td>
</tr>
<!--Here I want to add the option to upload the image -->
<tr>
<td>
<button type="submit">Ok</button>
</td>
</tr>
</table>
</form>
Контроллер:
@PostMapping("/addstore")
public String saveStore(@ModelAttribute("store") Store store,
@ModelAttribute("file") MultipartFile image){
//I have to upload the image before insert the store.
//imageService.insertImage(image);
storeService.insertStore(store);
}
Я могу вставить новый Магазин и могу вставить новое Изображение, но мне нужно вставить их в ЖЕ форму.
Я использую MultipartFile, чтобы добавить изображение в базу данных (это работает), поэтому конфигурация MultipartFile в порядке. Проблема в том, что я не знаю, как получить данные магазина и изображения из одной формы.
Пожалуйста, вы можете мне помочь?