抱歉,如果这不是我应该在这里问的问题类型,但我找不到我要找的东西。
我正在开发一个应该写入下表的 Spring Boot 应用程序:
quote_table
带有一个 request_id
列,其中可以有多个具有相同 request_id
的行,一个 messages_table
和一个 quote_messages_link_table
通过 quote_table.request_id
和 之间的多对多关系连接表quote_messages_link_table.request_id
和messages_table.id and
quote_messages_link_table.messages_id`之间的一对一链接。
为此,我有一个 Quotes 实体和一个 Message 实体。消息包含此连接:
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
name = "quote_messages_link_table",
joinColumns = {@JoinColumn(name = "message_id", nullable = false, updatable = false)},
inverseJoinColumns = {@JoinColumn(name = "request_id", nullable = false, updatable = false)})
private Set<Quote> quotes;
报价包含这个:
@ManyToMany(mappedBy = "quotes")
private Set<Message> messages;
要写入数据库,我有这个:
Message message = Message.builder()
.requestOrResponse("RESPONSE")
.messageString(response)
.build();
messageRepository.save(message);
这只会将数据写入消息表。我认为级联会导致
quote_messages_link_table
被写入,并且 quote_table 已经有来自早期保存操作的记录。我知道我在某个地方出错了,但我不确定我做错了什么。任何人都可以建议或指向一个合适的教程,这可能对我所追求的有所帮助吗?