加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:54:52 所属栏目:Java 来源:网络整理
导读:我有一个使用的实体 @Id@GeneratedValue(strategy = GenerationType.AUTO)private long id; 我有一个这个实体的JPA存储库.现在我想删除其中一个,但标准方法是delete(int i),这是行不通的,因为我的ID不是Integers,而是Longs.所以除了使用int作为我的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而且并不真正理解“整数”是什么.所以现在我知道了.无论如何,谢谢你的帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读