2016-12-15 85 views
0

我在使用Mybatis annotation的IN子句中使用下面的代碼片段。我沒有得到任何執行異常,但它返回0行。
請幫我解決這個問題。如何將數組傳遞給IN子句的字符串使用MyBatis註釋

@Select("SELECT A.* FROM RPRT_HDR A,SCHL_MSTR B WHERE A.SCHL_ID=B.SCHL_ID AND B.SCHOOL_NAME in (#{schools}) AND A.YR_MTH=#{ym}") 
@Results(value={ 
@Result(property ="rprtKey",column="RPRT_KEY"), 
@Result(property="reportImage",javaType = List.class,column ="rprtKey",[email protected](select="getImages")), 
@Result(property="reportQnAns",javaType = List.class,column ="rprtKey",[email protected](select="getQuestionAnswer"))    
})   
List<ReportHeader> getReportdata(@Param("schools")String[] schools,@Param("ym")int yearmonth); 
+0

您應該添加更多信息。這可能是出於原因 – Pau

回答

0

查詢工作,因爲MyBatis的實際發送的String數組的toString,則是有效的,但僅僅是沒有記錄相匹配的字符串。 寫:@Select("<script>SELECT A.* FROM RPRT_HDR A,SCHL_MSTR B WHERE A.SCHL_ID=B.SCHL_ID AND B.SCHOOL_NAME in (<foreach collection='schools' item='school' separator=', '>#{school}</foreach>) AND A.YR_MTH=#{ym}</script>")

相關問題