단순한 검색 엔진을 코딩하려고합니다. 내 DAO 구현에서NamedQueries LIKE를 사용하는 스프링 % %
:
@Transactional(readOnly=true)
public List<Thread> findAllWithReferer(String referer) {
Map<String, Object> params = new TreeMap<String, Object>();
log.debug("DAO:findAllWithReferer(String referer) - referer=" + referer);
params.put("referer", "%" + referer + "%");
@SuppressWarnings("unchecked")
List<Thread> threads = EntityManagerUtil.executeNamedQueryInTransaction("Thread.findAllWithReferer", params);
return (threads);
}
의 Utils 클래스 방법 위의 'executeNamedQueryInTransaction'제공 : 내 개체에 연결
@SuppressWarnings("rawtypes")
public static List executeNamedQueryInTransaction(String queryName, Map<String, Object> params) {
EntityManager em = createEntityManagerAndOpenTransaction();
Query query = em.createNamedQuery(queryName);
for (String key : params.keySet())
query.setParameter(key, params.get(key));
List l = query.getResultList();
commitTransactionAndCloseEntity(em);
return l;
}
그리고 Namedquery을 :
@NamedQueries({
@NamedQuery(name = "Thread.findAllWithReferer", query = "SELECT t FROM Thread t WHERE t.title LIKE :referer")
})
난 그냥 예를 들어, 모든 레코드를 내 엔터티 tit에서 'toto'문자열과 일치 시키려고합니다. le 필드에서 DAO 연산자 % %를 사용합니다.
토토가 큰 큰 Doestotois :
여기에 맞게 수있는 몇 가지 exemple이야? dghjgdjtotojdashkjdhk
하지만 작동하지 않습니다. 그냥 정확한 문자열이 작동합니다. 'executeNamedQueryInTransaction'메서드에 대한 코드가 정확하고 완벽하게 작동하고 싶습니다. 내 문제는 여기에서 온 것 같아요 :
params.put("referer", "%" + referer + "%");
아무도 도와 줄 수 있습니까? 미리 도움을 주셔서 감사합니다.
도움 주셔서 감사합니다. – user1364743