jpa查詢語句當使用or 加like時失效

2021-10-16 13:19:26 字數 738 閱讀 9521

@query(value = "select * from eam_parts_list where is_deleted=:no and (id=:id or ids like %:id%",nativequery = true)

listfindallbydeletedoridslike(@param("no") boolean no, @param("id") string id);

這樣寫總是只能查到符合or後面的條件的資料。

但在mysql中使用:select * from eam_parts_list where is_deleted=0 and (id='402882bc7705550701770559df8f0002' or ids like '%402882bc7705550701770559df8f0002%' )卻能夠查到所有符合條件的資料。

百思不得其解。

然後抱著試一試的心態,換了一種寫法:

@query(value = "select * from eam_parts_list where is_deleted=:no and (id=:id or ids like concat('%',:id,'%') )",nativequery = true)

listfindallbydeletedoridslike(@param("no") boolean no, @param("id") string id);

這樣寫就可以了。

JPA基礎(九) 使用JPQL語句進行查詢

這是持久化操作中很重要的乙個方面,通過物件導向而非面向資料庫的查詢語言查詢資料,避免程式的sql語句緊密耦合。跟hql真的很像 1 test 2public void query 只是查詢的時候不用開啟事務,只有當真正改變資料的時候需要開啟事務,1 的用的是佔位符的形式,1 表示索引號,不推薦使用字...

JPA中自定義查詢語句

org.springframework.bootgroupid spring boot starter parentartifactid 2.0.4.releaseversion relativepath parent 實體類 entity table name sensitive apimodel...

JPA 動態查詢之AND OR結合使用

現在,我負責開發的專案中,使用jpa作為orm框架。有了jpa,一行sql都沒寫過。在昨天,有乙個新的需求,需要進行動態查詢,這個簡單。但是有乙個地方需要and or結合使用,這裡,我將記錄下我的理解與寫法,希望能幫助到大家。需要根據條件進行動態查詢,實現一條類似下文的語句 select from ...