본문 바로가기

카테고리 없음

[JAVA] SPRING JPA Query Method

 

 

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference

 

Spring Data JPA - Reference Documentation

Example 108. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") v

docs.spring.io

 

예시 ) 

public interface UserRepository extends Repository<User, Long> {

  List<User> findByEmailAddressAndLastname(String emailAddress, String lastname);
  
}

 

 

KeywordSampleJPQL snippet

 

Keyword

Sample

JPQL snippet

And

findByLastnameAndFirstname

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

Or

findByLastnameOrFirstname

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

Is, Equals

findByFirstname,findByFirstnameIs,findByFirstnameEquals

where x.firstname = ?1

Between

findByStartDateBetween

where x.startDate between ?1 and ?2

LessThan

findByAgeLessThan

where x.age <?1

LessThanEqual

findByAgeLessThanEqual

where x.age <= ?1

GreaterThan

findByAgeGreaterThan

where x.age >?1

GreaterThanEqual

findByAgeGreaterThanEqual

where x.age >= ?1

After

findByStartDateAfter

where x.startDate >?1

Before

findByStartDateBefore

where x.startDate <?1

IsNull, Null

findByAge(Is)Null

where x.age is null

IsNotNull, NotNull

findByAge(Is)NotNull

where x.age not null

Like

findByFirstnameLike

where x.firstname like ?1

NotLike

findByFirstnameNotLike

where x.firstname not like ?1

StartingWith

findByFirstnameStartingWith

where x.firstname like ?1 (parameter bound with appended %)

EndingWith

findByFirstnameEndingWith

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

Containing

findByFirstnameContaining

where x.firstname like ?1 (parameter bound wrapped in %)

OrderBy

findByAgeOrderByLastnameDesc

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

Not

findByLastnameNot

where x.lastname <>?1

In

findByAgeIn(Collection<Age> ages)

where x.age in ?1

NotIn

findByAgeNotIn(Collection<Age> ages)

where x.age not in ?1

True

findByActiveTrue()

where x.active = true

False

findByActiveFalse()

where x.active = false

IgnoreCase

findByFirstnameIgnoreCase

where UPPER(x.firstame) = UPPER(?1)