Я пытаюсь создать службу, которая будет обрабатывать электронные письма и сохранять их в базе данных.
В данный момент у меня есть следующие объекты в моем проекте:
Mail:
@Data
@Entity
public class Mail {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private String messageId;
@NotNull
@ManyToOne
@JoinColumn
private MailAddress sender;
private String inReplyTo;
@NotNull
private LocalDateTime receivedAt;
private String subject;
@Lob
private String message;
@NotNull
private String ticketId;
@OneToMany(mappedBy = "mail", cascade = CascadeType.ALL)
private List<MailAttachment> attachments;
}
MailAttachment:
@Data
@Entity
public class MailAttachment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Lob
@NotNull
private byte[] attachment;
@NotNull
private String fileName;
@NotNull
private String fileFormat;
@JsonIgnore
@ManyToOne
@JoinColumn
private Mail mail;
}
MailAddress:
@Data
@Entity
public class MailAddress {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private String address;
@JsonIgnore
@OneToMany(mappedBy = "sender")
private List<Mail> mails;
}
Затем я делаю следующее:
...
List<MailAttachment> attachmentList = new ArrayList<>(1);
...
MailAttachment mailAttachment = new MailAttachment();
mailAttachment.setAttachment(data);
mailAttachment.setFileFormat(fileFormat);
mailAttachment.setFileName(filename);
attachmentList.add(mailAttachment);
...
mail.setAttachments(attachmentList);
mailRepo.save(mail);
Проблема в том, что FK не вставляется в таблицу mail_attachment. Все учебники, которые я видел, работали так же, как и я.
Я использую Spring Boot 2.2.4.
Есть идеи, почему?
Спасибо