WHERE 子句和通配符中的变量值



我搜索了两个小时,但找不到解决方案。我想做一个简单的查询,应该检查字符串m_sName是否包含String变量。我尝试了很多东西,但找不到正确的语法。使用变量和使用通配符也有效,但两者一起使用不起作用。

TypedQuery<Kunde> query; 
query = em.createQuery("SELECT p FROM Kunde p" + 
    " WHERE p.m_sName LIKE :name", Kunde.class);
m_lKunde = query.setParameter("name", m_sSearch).getResultList();

这个查询实际上有效,但我现在不知道如何使用通配符。我尝试了*,_,%字符,但没有任何效果。

通配符附加到/前缀到您传入的标记中:

m_lKunde = query.setParameter("name", "%" + m_sSearch + "%").getResultList();

也许这会有所帮助

"SELECT p FROM Kunde p WHERE p.m_sName LIKE '%'|| :name || '%' ", Kunde.class);

最新更新