programing

Spring Crud Repository를 사용한 대소문자를 구분하지 않는 쿼리

codeshow 2023. 3. 23. 22:59
반응형

Spring Crud Repository를 사용한 대소문자를 구분하지 않는 쿼리

Spring CrudRepository Query에서 "name" 속성을 가진 "DeviceType" 엔티티를 선택합니다.그러나 쿼리 후 대소문자를 구분하는 방식으로 사용 권한을 선택합니다.내가 어떻게 사건을 무신경하게 만드는지.감사해요.

public interface DeviceTypeRepository extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> {

    public Iterable<DeviceType> findByNameContaining(String name);

}  

@Peter가 댓글에 언급했듯이, 그냥 추가하세요.IgnoreCase:

public interface DeviceTypeRepository 
    extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> {

    public Iterable<DeviceType> findByNameContainingIgnoreCase(String name);
}  

메서드 이름 내에서 지원되는 모든 키워드 목록은 설명서를 참조하십시오.

아래의 스프링 데이터 mongo 쿼리는 저에게 효과가 있습니다.사용하고 싶다List대신Iterator

public interface DeviceTypeRepository extends CrudRepository<DeviceType,Integer>, JpaSpecificationExecutor<DeviceType> {
    List<DeviceType> findByNameIgnoreCase(String name);
} 

내 경우 추가IgnoreCase전혀 작동하지 않았다.

정규 표현에 대한 옵션도 제공할 수 있습니다.

@Query(value = "{'title': {$regex : ?0, $options: 'i'}}")
Foo findByTitleRegex(String regexString);

i옵션을 지정하면 쿼리에서 대소문자가 구분됩니다.

커스텀 JPA query Upper 키워드와 To Upper Case를 사용하는 사용자는 도움이 됩니다.다음 코드가 유효합니다.

 return  entityManager.createQuery("select q from "table " q  where upper(q.applicant)=:applicant")
    .setParameter("applicant",applicant.toUpperCase().trim()).getSingleResult();

언급URL : https://stackoverflow.com/questions/22573428/case-insensitive-query-with-spring-crudrepository

반응형