我在我的 JPA 存盤庫中使用本機查詢來運行 INSERT 查詢 - 因為,我無法通過 JPA 運行一些查詢。
String INSERT_USER_IN_TO_DATABASE = "INSERT INTO USER_MASTER "
"("
"MOBILE_X,USER_TYPE,COUNTRYCODE,USER_N,USER_LAST_N,GENDER,DOB) "
"VALUES ( "
"EncryptByKey(Key_GUID(convert(varchar,?1)), ?2),"
"1, 91,?3,?4,?5,?6"
")";
@Query(value = INSERT_USER_IN_TO_DATABASE, nativeQuery = true)
@Modifying
UserMasterEntity saveNewUser(String encryptionKey,
String phoneNumber,
String name,
String lastName,
String gender,
String dob);
我的意圖是執行該INSERT陳述句并為我獲取 userMaster 物體。但我得到以下例外
Caused by: java.lang.IllegalArgumentException: Modifying queries can only use void or int/Integer as return type! Offending method: public abstract com.officeride.fileprocess.job.bulkuser.UserMasterEntity com.officeride.fileprocess.job.bulkuser.UserMasterRepository.saveNewUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)
我@ColumnTransformer在我的物體中也使用了一些東西,但對我來說沒有任何效果。
如何解決這個問題?
uj5u.com熱心網友回復:
你不能讓INSERT INTO陳述句回傳任何東西。根據您的資料庫的支持,您可以為此執行多個陳述句,例如INSERT INTO ...; SELECT ...,但 Spring Data JDBC 不支持此功能。
- 您可以做的是實作
saveNewUser并執行插入,然后依次和同步地選擇。請參閱:https : //docs.spring.io/spring-data/jdbc/docs/current/reference/html/#repositories.single-repository-behavior。 - 如果您的資料庫支持它,您可以創建一個執行插入然后選擇的存盤程序。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/369301.html
上一篇:如何像GKE、EKS、..等KubernetesCloud為Kubernetes中的型別Loadbacer的服務分配外部ip?
下一篇:GoogleScript函式計時
