spring - 错误:表上的 UPDATE 或 DELETE 语句
问题描述
在使用 Spring Boot 和 Spring JPA 的项目中,我有两个实体 FunctionConfiguration 和 InvokeFunctionResult。
@Entity
@Table(name = "function_configuration")
public class FunctionConfigurationEntity {
@Id
@Column(name = "id_function_configuration")
@GeneratedValue(strategy = IDENTITY)
private Integer idFunctionConfiguration;
}
@Entity
@Table(name = "invoked_function_result")
public class InvokedFunctionResultEntity {
@Id
@Column(name = "id_invoked_result_function")
@GeneratedValue(strategy = IDENTITY)
private Integer idInvokedResultFunction;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "function_configuration_id", nullable = false, foreignKey = @ForeignKey(name = "function_configuration_fk"), referencedColumnName = "id_function_configuration")
private FunctionConfigurationEntity functionConfiguration;
}
InvokeFunctionResult 具有 FunctionConfiguration 的 id 外键。如果我尝试使用 InvokeFunctionResult 中存在的 functionConfiguration 的 id 进行删除:
@Transactional
@Modifying
@Query(value = "DELETE FROM FunctionConfigurationEntity fce WHERE fce.idFunctionConfiguration = idFunctionConfiguration")
void deleteByFunctionConfigurationId(@Param("idFunctionConfiguration") Integer functionConfigurationId);
我收到以下错误: 原因:org.postgresql.util.PSQLException:错误:表“function_configuration”上的 UPDATE 或 DELETE 语句违反了表“invoked_function_result”上的外键约束“function_configuration_fk”
我该如何解决?
解决方案
推荐阅读
- php - PHP 7.3 在 Mac 上运行但未安装在任何地方
- c# - 第一次连接后的 localhost Websockets 404
- visual-studio-code - 使用 Mac 的 VSCode 中的蓝色水平线
- python - 来自 Webelement 的文本(Selenium + Python)
- python - 在使用 .partition 的 selenium 中,我的代码只打印子字符串之前的内容,而不是子字符串之后的内容
- python - 用于修补子分段的 AWS X-Ray Python 开发工具包元数据
- c# - C# MSBuild 不包括 NuGet 包(适用于 Visual Studio 17)
- azure - 在 Azure Front Door 中重写 URL 路径 - 错误 HTTP 404
- python - 保留字符串 Pandas 中的数值
- c# - LINQ 不返回数据