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

时间:2013-10-10 12:02:52

标签: java sql jpa jpa-2.0

我正在搜索两个小时,但无法找到解决方案。我想进行一个简单的查询,检查字符串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();

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

2 个答案:

答案 0 :(得分:3)

将通配符符号附加/前缀到您传入的令牌:

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

答案 1 :(得分:0)

也许这可以帮助

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