我有一个使用的实体
@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而且并不真正理解“整数”是什么.所以现在我知道了.无论如何,谢谢你的帮助!