Spring JPA: Lỗi parse 1 List String vào param trong WHERE statement

Đây là lỗi e gặp phải
Caused by: java.sql.SQLException: Operand should contain 1 column(s)

Đây là code của em

       @Query(nativeQuery = true, value = "SELECT COUNT(DISTINCT vesseltypemaster.vesseltypedesc) FROM vesselmaster " +
        "INNER JOIN vesseltypemaster ON vesseltypemaster.vesseltypecode=vesselmaster.vesseltypecode " +
        "INNER JOIN fleetmapping ON fleetmapping.vslcode=vesselmaster.vesselcode " +
        "WHERE 1 = 1 " +
        "AND (:search IS NULL OR vesseltypemaster.vesseltypedesc LIKE %:search%) " +
        "AND (:fleetCodeList IS NULL OR fleetmapping.fleetcode IN :fleetCodeList) " +
        "AND (:vesselMasterList IS NULL OR vesselmaster.vesselcode IN :vesselMasterList) " +
        "AND vesselmaster.active_status='a' and fleetmapping.active_status='a'")
int countVesselTypeMastersForChecklist(
        @Param("search") String search,
        @Param("fleetCodeList") List<String> fleetCodeList,
        @Param("vesselMasterList") List<String> vesselMasterList
);

Mình cũng chưa biết gì về #spring-boot. Vừa tìm với từ khóa nghi ngờ là @Query nativeQuery. Thì là thì là…
Khi gán nativeQuery = true có nghĩa là nguyên chuỗi truy vấn kia không hề chứa tham số (:search…) từ @Param. Rõ là truy vấn của bạn có tham số.

Nó cho gọn thì bạn bỏ cái nativeQuery = true đi.

4 Likes

check trên code, Spring JPA nó không thông minh đên vậy :expressionless:

3 Likes


mình làm như này thì được, cám ơn mn

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?