0
我已經按照我的倉庫本地查詢方法:春數據JPA,原生查詢,返回錯誤的字段類型
@Query(value="SELECT appSub.ApplicationFormId as appFormId, appSub.profileId as profileId, "
+ "p.CASId as profileCASId, ps.programId as programId FROM [unicas_config].[dbo].ApplicationFormEarlyDecisionConfig appFormED "
+ "INNER JOIN [unicas_ux].[dbo].ApplicationSubmission appSub ON appFormED.ApplicationFormId = appSub.applicationFormId "
+ "INNER JOIN [unicas_ux].[dbo].Profile p ON appSub.profileId = p.id "
+ "INNER JOIN [unicas_ux].[dbo].ProgramSelected ps ON p.id=ps.ProfileId AND appSub.applicationFormId = ps.instanceId "
+ "WHERE appFormED.EarlyDecisionVerdictDate >=:fromDate AND appFormED.EarlyDecisionVerdictDate <:toDate "
+ "AND appSub.EarlyDecisionStatus='Applied Early Decision' "
+ "AND appSub.ApplicationStatus='Received' "
+ "AND ps.IsPaid =1 "
+ "ORDER BY appSub.ApplicationFormId",nativeQuery = true)
List<Object[]> getAllEarlyDecisionApplicantsWithPaidProgramsOnVerdictDate(@Param("fromDate") Date fromDate, @Param("toDate") Date toDate);
現在,我要地圖返回結果:
long appFormId = (Long)obj[0]
long profileId = (Long)obj[1]
long programId = (Long)obj[3]
當我我正在這樣做,我得到java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
作爲Hibernate考慮Integer
類型的ID代替Long
。
請告訴我如何以編程方式告訴Hibernate返回正確的類型。
我不認爲這與Hibernate有很大關係。 JDBC驅動程序將返回與數據庫中列類型對應的Java類型。爲什麼你不能只使用Java Integer? –
@AlanHay。是的,你賴特。我發現DB中的列類型是Int類型,即使實體ID也是長類型的。這就是爲什麼我得到Integer而不是很長。 –