복붙노트

[SPRING] 최대 절전 모드에서 LIKE % 사용하기

SPRING

최대 절전 모드에서 LIKE % 사용하기

Hibernate에서 어떻게 LIKE %를 사용합니까? 내 hbm.xml 파일에 SQL을 LIKE %로 사용하고 싶습니다. 나는 1로 합병되는 2 개의 쿼리를 가지고있다.

쿼리는 다음과 같습니다.

select * from PAY_GROUP_VW where CASE_SID=? AND CASE_TLE like %?%

나는 또한 %? %를 시도했다. 나는 %없이 like 절을 사용했다. 그러나 %는 작동하지 않습니다.

래핑 된 예외 :

org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
    at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)

이것은 매개 변수를 전달하는 방법입니다.

q.setParameter(0, csId);
q.setParameter(1, csTle);
return q.list();

% || 같이 시도했습니다. ? 다음과 같은 예외가 있습니다 :

org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
    at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)

해결법

  1. ==============================

    1.어쩌면 user_id가 char / varchar가 아닌 것입니까? str ()을 사용하여 user_id를 문자 데이터로 먼저 변환해야합니다!

    어쩌면 user_id가 char / varchar가 아닌 것입니까? str ()을 사용하여 user_id를 문자 데이터로 먼저 변환해야합니다!

    예:

    SELECT *
    FROM abc.def_vw a
    WHERE user_id = ?
    AND str(user_id) LIKE '%' || ?
    
  2. ==============================

    2.LIKE '%? %'와 두 번째 매개 변수 문자열을 사용하여 쿼리를 만듭니다. like는 문자열을 비교하는 데 사용되기 때문에 필드도 문자열 유형이어야합니다.

    LIKE '%? %'와 두 번째 매개 변수 문자열을 사용하여 쿼리를 만듭니다. like는 문자열을 비교하는 데 사용되기 때문에 필드도 문자열 유형이어야합니다.

  3. ==============================

    3.3 가지주의 사항 :

    3 가지주의 사항 :

  4. from https://stackoverflow.com/questions/15369090/using-like-in-hibernate by cc-by-sa and MIT license