java - spring-data-jdbc deleteBy方法返回异常结果类型
问题描述
我尝试使用这样的 spring-data-jdbc 存储库声明和使用 deleteBy 方法
public interface TokenRepository extends CrudRepository<OpToken, Long> {
void deleteByBreed(Long breed);
}
当我尝试调用方法时
private TokenRepository tokenRepository;
...
...
tokenRepository.deleteByBreed(123L);
我得到了异常:MethodNotFoundException:
java.lang.NoSuchMethodException: void.()
我决定,删除方法应该返回它处理的行数。所以,我像这样重写我的存储库界面
public interface TokenRepository extends CrudRepository<OpToken, Long> {
long deleteByBreed(Long breed);
}
但现在我又遇到了另一个异常:org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 4
它看起来像方法返回实体或它尝试删除的实体列表。但我不需要它们。在我的情况下如何声明此方法?
按实体看起来像这样:
@Data
public class OpToken implements Persistable<Long> {
@Transient
private boolean newEntity;
@Id
@Column("jti")
private Long jti;
@Column("breed")
private Long breed;
@Column("id_account")
private Long idAccount;
@Column("exp")
private Date exp;
@Override
public Long getId() {
return jti;
}
@Override
public boolean isNew() {
return newEntity;
}
}
解决方案
它只有一个工作
@Modifying
@Query("delete from account.op_token t where t.breed = :breed")
Long(or void) deleteByBreed(@Param("breed") Long breed);
推荐阅读
- apache-kafka - how to enforce schema validation in kafka
- unity3d - Use aws sdk with Unity on a Mac
- java - read from a file i created with random ints and place into an array and display values
- ios - react-native-image-picker crashing at run - Metro Bundler error
- html - 切换小屏幕时如何保持浮动 div 不变?
- java - 如何将图像转换为 postscript 形状
- imagemagick - 潜在的 Imagemagick 线性渐变错误?
- java - 如何在java中实现子类的通用接口
- sql - SQL Rows to Dynamics Columns
- php - 如何检索所有数据并显示在不同的卡片中