JPA宣告式查詢關鍵字及使用方法

2021-09-29 01:43:30 字數 3578 閱讀 3954

凡是繼承了jparepository的或繼承其子介面的,都可以使用自定義的宣告式查詢方法。

宣告式查詢方法可以分3大類:

示例:

public inte***ce webtaskrepository extends jparepository

查詢方法可以由我們宣告的命名查詢生成,也可以像前面那樣由方法名解析。

keyword

sample

jpql snippet

andfindbylastnameandfirstname… where x.lastname = ?1 and x.firstname = ?2

orfindbylastnameorfirstname… where x.lastname = ?1 or x.firstname = ?2

is,

equalsfindbyfirstname,

findbyfirstnameis,

findbyfirstnameequals… where x.firstname = ?1

betweenfindbystartdatebetween… where x.startdate between ?1 and ?2

lessthanfindbyagelessthan… where x.age < ?1

lessthanequalfindbyagelessthanequal… where x.age <= ?1

greaterthanfindbyagegreaterthan… where x.age > ?1

greaterthanequalfindbyagegreaterthanequal… where x.age >= ?1

afterfindbystartdateafter… where x.startdate > ?1

beforefindbystartdatebefore… where x.startdate < ?1

isnullfindbyageisnull… where x.age is null

isnotnull,

notnullfindbyage(is)notnull… where x.age not null

likefindbyfirstnamelike… where x.firstname like ?1

notlikefindbyfirstnamenotlike… where x.firstname not like ?1

startingwithfindbyfirstnamestartingwithendingwithfindbyfirstnameendingwith… where x.firstname like ?1(parameter bound with prepended%)

containingfindbyfirstnamecontainingorderbyfindbyageorderbylastnamedesc… where x.age = ?1 order by x.lastname desc

notfindbylastnamenot… where x.lastname <> ?1

infindbyagein(collectionages)… where x.age in ?1

notinfindbyagenotin(collectionages)… where x.age not in ?1

truefindbyactivetrue()… where x.active = true

falsefindbyactivefalse()… where x.active = false

ignorecasefindbyfirstnameignorecase… where upper(x.firstame) = upper(?1)

例項說明:

實體類

@entity

@table(name="user")

public class user

public string getid()

public void setid(string id)

public string getname()

public void setname(string name)

public integer getheight()

public void setheight(integer height)

}

jpa

public inte***ce userrepository extends jparepository
擴充套件:

jpa寫操作時需要注意,無論是更新,還是刪除都需要加上@transactional 和 @modifying兩個註解。

@modifying

@transactional

@query(value="delete from ds_ipay_pay t where t.bill_id = ?1",nativequery=true)

public void delete(long billid);

property關鍵字介紹及使用

1 基本概念 property 是編譯器的指令什麼是編譯器的指令,編譯器指令就是用來告訴編譯器要做什麼 property 告訴編譯器 宣告屬性的訪問器 getter setter 方法 這樣的好處是 免去我們手工書寫get和set方法繁瑣的 2 property用法 property 型別 方法名 ...

Static關鍵字的作用及使用

如果希望乙個屬性被所有物件共同擁有,可以將其宣告為static型別。宣告為static型別的屬性或方法,此屬性或方法也被稱為類方法,可以由類名直接呼叫。person.country b城 如果乙個方法使用了static關鍵字宣告,此方法可以直接使用類名進行呼叫。注意 使用static方法,不能呼叫非...

final關鍵字的介紹及使用

final 最終的 1.final可以用來修飾的結構 類 方法 變數 2.final 用來修飾乙個類 此類不能被其他類所繼承。比如 string類 system類 stringbuffer類 3.final 用來修飾方法 表明此方法不可以被重寫 比如 object類中getclass 4.final...