spring-data-jpa 无法使用JPA(MySQL)删除主键为0的数据库条目

amrnrhlw  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(228)

我试图删除主键为0的元素,但没有任何结果。我在data.sql文件中上载了一组测试数据。我想可能在另一个表中有一些对该条目的引用,但我忽略了这些引用,因此我删除了除元素之外的所有其他表,但仍然没有删除。我成功删除了所有其他行,但零行就是没有删除。
为了证实这一点,我进入了Sqlectron(sql客户端),并尝试在那里运行该语句,它工作了。只是使用JPA时它不工作。这是怎么回事?
第一个问题:

svdrlsy4

svdrlsy41#

当id类型是基元类型时,0具有未分配标识符的特殊含义。这是因为不可能将null与基元类型一起使用。
在删除实体之前,Spring会检查实体的id是否已分配-因为您的实体的id为0-确定它不是,它是一个新实体,没有什么可删除的。
我的建议是避免使用基元类型作为id,或者确保id总是大于0。

相关问题