[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.어쩌면 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.LIKE '%? %'와 두 번째 매개 변수 문자열을 사용하여 쿼리를 만듭니다. like는 문자열을 비교하는 데 사용되기 때문에 필드도 문자열 유형이어야합니다.
LIKE '%? %'와 두 번째 매개 변수 문자열을 사용하여 쿼리를 만듭니다. like는 문자열을 비교하는 데 사용되기 때문에 필드도 문자열 유형이어야합니다.
-
==============================
3.3 가지주의 사항 :
3 가지주의 사항 :
from https://stackoverflow.com/questions/15369090/using-like-in-hibernate by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] ConditionalOnExpression 평가 중에 PropertySource를 사용할 수 없음 (0) | 2019.05.18 |
---|---|
[SPRING] 스프링 부트 오류 : EmbeddedServletContainerFactory 빈이 없어서 EmbeddedWebApplicationContext를 시작할 수 없습니다. (0) | 2019.05.18 |
[SPRING] @Autowired with JUnit 테스트 (0) | 2019.05.18 |
[SPRING] Spring : ManyToOne 엔티티를 가져올 때 참조 엔티티 (OneToMany)가 JSON에 표시되지 않습니다. (0) | 2019.05.18 |
[SPRING] Spring / Hibernate에서의 적절한 캐시 사용법 (0) | 2019.05.18 |