1 :在repository介面上註解@query引數
1:@query("select o from agentinfo o where o.userid = ?1 and o.balance<0")
2:@query(value = "select * from fl_agentinfo a inner join(select id from fl_agentinfo where user_id = ?1 and device_wxid = ?2 order by id desc limit ?3,15) b on a.id = b.id",nativequery = true)
加上 nativequery = true 欄位名稱就要對應資料庫,可以實現稍微複雜一些的連表查詢
修改的話注意要加@modifying 和 @transactional註解
2.第二種 實現specification可以用來做一些需要過濾條件的查詢
agentinforepository.findall(
new
specification()
if
(stringutils.isnotempty(wxname))
query.where(predicates.toarray(
new
predicate[predicates.size()]));
return
null
;
}
}, pageable);
3.使用entitymanager完全自定義的拼接sql
stringbuilder datasql = new stringbuilder("select * from fl_handlercash a inner join (select id from fl_handlercash where user_id ="+userid);stringbuilder countsql = new stringbuilder("select count(*) from fl_handlercash where user_id ="+userid);
date starttime = null;
date endtime = null;
if (stringutils.isnotempty(starttimestr))
if (status != -1) else
}if (stringutils.isnotempty(wxid))
if (stringutils.isnotempty(devicewxid))
listhandlercashes = entitymanager.createnativequery(datasql.tostring(),handlercash.class).getresultlist();
biginteger count = (biginteger)entitymanager.createnativequery(countsql.tostring()).getsingleresult();
pagebeanpagebean = new pagebean(page+1, count.intvalue(), 0,handlercashes);
js自定義物件的三種方式
js是物件導向的程式語言。物件具有三大特徵 繼承 封裝 多型 物件包含屬性和行為。常規定義物件var person newobject 設定屬性 person.name 張三 person.age 8 設定物件的方法 person.eat function 簡單版定義物件var cat 有關該類的成...
自定義View的三種實現方式及自定義屬性使用介紹
實現自定義view的方式,從整體上看,只分為三種 組合控制項,繼承控制項,自繪控制項。然後就是根據需要來新增自定義的屬性,就這麼簡單。本文將會針對這4個方面進行詳細的講解。主要內容如下 一 組合控制項 組合控制項,顧名思義,就是將系統原有的控制項進行組合,構成乙個新的控制項。這種方式下,不需要開發者...
自定義類,三種寫法
自定義類,設定為public,方便但不安全,被他人引用而造成異常 方法1 3 class user public string name 設定為public,方便但不安全,被他人引用而造成異常 public string public void set string values if values...