java – JPA / Spring / Delete Entity,输入Mismatch(int / long for id)

前端之家收集整理的这篇文章主要介绍了java – JPA / Spring / Delete Entity,输入Mismatch(int / long for id)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用的实体
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

我有一个这个实体的JPA存储库.现在我想删除其中一个,但标准方法是delete(int i),这是行不通的,因为我的ID不是Integers,而是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长时间工作的方法.问题是如何

解决方法

好的结果证明这只是一个愚蠢的错误.所以我的JPARepository看起来像这样:
public interface EntityRepository extends JpaRepository<Entity,Integer> {

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

猜你在找的Java相关文章