Код: Выделить всё
@Entity
@Table(name = "posts")
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="post_id")
private int id;
@Column(name="caption")
private String caption;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="post_date")
private Date postDate;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "post_id")
private List images;
@Column(name="likes")
private int Likes;
@Column(name="dislikes")
private int Dislikes;
@Column(name="pinned", columnDefinition = "boolean default false")
private boolean Pinned;
@OneToMany(mappedBy="post")
private List comments;
}
Код: Выделить всё
@Entity
@Table(name="images")
public class Image {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="img_id")
private Long id;
@Column(name="img_name")
private String name;
@Column(name="img_url")
private String imageUrl;
}
Код контроллера< /p>
Код: Выделить всё
@GetMapping("/delete/{id}")
public String deletePost(@PathVariable("id") int id) {
postService.removePost(id);
return "redirect:/user/profile";
}
Код: Выделить всё
@Transactional
public void removePost(int id) {
Post p = postRepository.findById(id);
if (p != null) {
List images = p.getImages();
if (images != null && !images.isEmpty()) {
for (Image image : images) {
try {
Files.deleteIfExists(Paths.get(UPLOADED_FOLDER + image.getName()));
} catch (IOException e) {
e.printStackTrace();
}
}
}
postRepository.delete(p);
}
}
Я уже проверил jparepository: все методы создания, чтения и обновления работают, но для сущностей не работает только удаление.
Подробнее здесь: https://stackoverflow.com/questions/785 ... tory-fails
Мобильная версия