【发布时间】:2020-09-08 04:32:53
【问题描述】:
我是 Spring Boot 新手。
目前,我需要在我即将为我的 Spring Boot 项目创建的表上设置 Cascade Delete 属性。
下面是我定义表“MESSAGE”的java代码。
“MESSAGE”表有两个外键(“Header”、“MessageBody”)
@Entity
@Data
@Table(name="MESSAGE")
public class LSportsMessage {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "MESSAGE_ID")
private Long id;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "HEADER_ID")
@JacksonXmlProperty(localName="Header")
private Header header;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "BODY_ID")
@JacksonXmlProperty(localName="MessageBody")
private MessageBody messageBody;
@Column(name = "IS_INPLAY")
private Boolean isInplay = false;
@Column(name = "IS_PREMATCH")
private Boolean isPrematch = false;
}
数据库创建成功一半,因为当我运行 SHOW CREATE TABLE MESSAGE 时,会显示以下输出。
CREATE TABLE `message` (
`message_id` bigint(20) NOT NULL,
`is_inplay` bit(1) DEFAULT NULL,
`is_prematch` bit(1) DEFAULT NULL,
`header_id` bigint(20) DEFAULT NULL,
`body_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`message_id`),
KEY `FK10f5dp8hyhqi35fn83goqkxpk` (`header_id`),
KEY `FK3dpoffc04evqxd8d2kieghiol` (`body_id`),
CONSTRAINT `FK10f5dp8hyhqi35fn83goqkxpk` FOREIGN KEY (`header_id`) REFERENCES `header` (`header_id`),
CONSTRAINT `FK3dpoffc04evqxd8d2kieghiol` FOREIGN KEY (`body_id`) REFERENCES `body` (`body_id`)
)
输出中没有提到级联删除。
我该如何解决这个问题?
当我删除表“Message”中的相应行时,我确实需要自动删除“Header”和“MessageBody”表中的行。
【问题讨论】:
标签: mysql spring-boot