Query creation from method names:
public interface UserRepository extends Repository {
List findByEmailAddressAndLastname(String emailAddress, String lastname);
}
select u from User u where u.emailAddress = ?1 and u.lastname = ?2
[code lang=”xml”]
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 findByAgeIsNull … 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> age) … 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)
[/code]
You can refer to this site for more information.
[code lang=”java”]
package net.yazilimcity.integration.repository;
import net.yazilimcity.integration.entity.Store;
import org.springframework.data.jpa.repository.JpaRepository;
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;
/**
* This interface provide data access
*
* @author oguzhankinik
*/
public interface StoreRepository extends JpaRepository<Store, UUID> {
List<Store> findAllByCompanyCode(BigDecimal companyCode);
Store getFirstByStoreCodeAndDeletedIsFalse(String code);
}
@Entity
@Table(name = "ACP_STORE")
public class Store {
private BigDecimal companyCode;
private boolean deleted;
@Basic
@Column(name = "COMPANY_CODE")
public BigDecimal getCompanyCode() {
return companyCode;
}
public void setCompanyCode(BigDecimal companyCode) {
this.companyCode = companyCode;
}
@Basic
@Column(name = "DEL_F")
@Convert(converter = BooleanToStringConverter.class)
public boolean isDeleted() {
return deleted;
}
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
}
[/code]]]>