我试图删除主键为0的元素,但没有任何结果。我在data.sql文件中上载了一组测试数据。我想可能在另一个表中有一些对该条目的引用,但我忽略了这些引用,因此我删除了除元素之外的所有其他表,但仍然没有删除。我成功删除了所有其他行,但零行就是没有删除。
为了证实这一点,我进入了Sqlectron(sql客户端),并尝试在那里运行该语句,它工作了。只是使用JPA时它不工作。这是怎么回事?
第一个问题:
我试图删除主键为0的元素,但没有任何结果。我在data.sql文件中上载了一组测试数据。我想可能在另一个表中有一些对该条目的引用,但我忽略了这些引用,因此我删除了除元素之外的所有其他表,但仍然没有删除。我成功删除了所有其他行,但零行就是没有删除。
为了证实这一点,我进入了Sqlectron(sql客户端),并尝试在那里运行该语句,它工作了。只是使用JPA时它不工作。这是怎么回事?
第一个问题:
1条答案
按热度按时间svdrlsy41#
当id类型是基元类型时,
0
具有未分配标识符的特殊含义。这是因为不可能将null
与基元类型一起使用。在删除实体之前,Spring会检查实体的id是否已分配-因为您的实体的id为
0
-确定它不是,它是一个新实体,没有什么可删除的。我的建议是避免使用基元类型作为id,或者确保id总是大于0。