![](/img/trans.png)
[英]SPRING REDIS - No converter found capable of converting from type.. ERROR
[英]Spring JPA native query to call store procedrure gives “No converter found capable of converting from type”
我正在使用 Spring JPA,我需要一個本機查詢來調用存儲過程。 從結果來看,我只需要得到兩個字段,即代碼和味精。 我做了一個包含兩個字段代碼和味精的類。 它不起作用,這是我收到的錯誤:
無法完成請求:org.springframework.core.convert.ConverterNotFoundException:找不到能夠從類型 [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] 轉換為類型 [com.evampsaanga.sez 的轉換器.model.dto.NtnVerification]
所以,這是我的代碼:
public interface CacheOtpRepository extends JpaRepository<CacheOtp, Long> {
@Query(value = "{call verify_ntn_opt_prc(:ntnNumber, :otpCode)}", nativeQuery = true)
NtnVerification verifyNtnByOtpStoredProcedure(@Param("ntnNumber") String ntnNumber, @Param("otpCode") String otpCode);
}
}
這是我的 dto 課
public class NtnVerification {
private int code;
private String msg;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
這是我使用 mysql 工作台調用存儲過程時的結果
嘗試使用spring數據JPA界面投影
public interface NtnVerification {
public int getCode;();
public String getMsg();
}
您在返回NtnVerification
從JpaRepository這需要的持久性照顧CacheOtp
。 您可以使用@ashish提到的Projections或以 Spring data jpa 方式調用該過程。
Spring的數據JPA的方式調用存儲Procudure是使用@NamedStoredProcedureQuery
對你的實體類,然后使用@Procedure
在JPA庫。
您的實體
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(
name = "YOUR_PROCEDURE_NAME",
procedureName = "PROCEDURE_NAME_IN_THE_DATABASE",
parameters = {
...
...
}
)})
@Entity
public class NtnVerification {
...
...
}
您的存儲庫
@Transactional
public interface NtnVerificationRepository extends CrudRepository<NtnVerification , Long> {
...
@Procedure(name = YOUR_PROCEDURE_NAME)
List<NtnVerification> getNtnVerifications();
}
您可以參考本教程以獲得更詳細的解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.