簡體   English   中英

Spring 數據和本地查詢與類似語句

[英]Spring Data and native query with like statement

我有以下存儲庫定義:

public interface InstructionRepository extends JpaRepositoryWithSpecification<Instruction> {

    String FIND_INSTRUCTIONS_BY_TRACKING_ID_QUERY =
            "SELECT * FROM instruction i WHERE i.invoice_documents_trackings like '%:trackingId%'";

    @Query(value = FIND_INSTRUCTIONS_BY_TRACKING_ID_QUERY, nativeQuery = true)
    List<Instruction> findByFileTrackingsContaining(@Param("trackingId") String trackingId);
}

我在這里使用原生查詢的原因是invoice_documents_trackings列代表一個 map 序列化為 json 字符串。 所以基本上我想找到所有在invoice_documents_trackings map 中存儲了特定trackingId的指令。

當我執行該方法時,我總是得到 0 結果,盡管如果我手動執行相同的查詢,我會得到預期的結果。

我還嘗試更改查詢,使其看起來像:

String FIND_INSTRUCTIONS_BY_TRACKING_ID_QUERY =
        "SELECT * FROM instruction i WHERE i.invoice_documents_trackings like %:trackingId%"

這也不起作用。

真的很感激任何幫助,而不是

我認為問題在於您使用%的方式

String FIND_INSTRUCTIONS_BY_TRACKING_ID_QUERY =
        "SELECT * FROM instruction i WHERE i.invoice_documents_trackings like CONCAT('%', :trackingId, '%')"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM