当前位置:  开发笔记 > 编程语言 > 正文

JPA/Spring/Delete Entity,输入Mismatch(int/long表示id)

如何解决《JPA/Spring/DeleteEntity,输入Mismatch(int/long表示id)》经验,为你挑选了1个好方法。

我有一个使用的实体

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

我有一个这个实体的JPA存储库.现在我想删除其中的一个,但标准的方法是delete(int i),这是行不通的,因为我的ID不是整数,而是Longs.因此,除了使用int我的ID之外,该怎么做?我可以指定一个使用long的自定义删除方法,就像它一样findbyXX(XX)吗?

编辑:首先:是的我正在使用Data JPA!

我想做这个:

   jparepository.delete(id);

如果id是整数:

org.hibernate.TypeMismatchException: Provided id of the wrong type for class com.Entity. Expected: class java.lang.Long, got class java.lang.Integer

如果id很长:

no method found for delete(long)

所以我可以将我的ID更改为int,这是我不想做的,或者找到一种让Repository长时间工作的方法.问题是如何



1> Heady..:

好的结果证明这只是一个愚蠢的错误.所以我的JPARepository看起来像这样:

public interface EntityRepository extends JpaRepository {

这显然是愚蠢的,因为Integer在这里必须是Long,因为它代表了实体上id字段的类型.这就是我改变了,现在它有效.发生这种情况是因为我刚刚学会了使用JpaRepository而且并不真正理解"整数"是什么.所以现在我知道了.无论如何,谢谢你的帮助!

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有