我正在尝试使用以下代码进行编译,
public List<T> searchByInt(String int) {
System.out.println("in searchByInt");
return getEntityManager().createNamedQuery("Userdetails.searchByInt").setParameter("id", "%" + int + "%").getResultList();
}
但是,我遇到了这段代码的问题,我不明白为什么。
答案 0 :(得分:3)
这里的主要问题是,int
是保留字,因此您不能将任何变量命名为int
。另一个问题是,您没有像int
那样处理变量,因为您基本上重命名了变量。您不能将"%"
添加到int中,因为这是String
,此外这在查询中没有任何意义,因为另一个查询中的%
用作字符串 - 通配符。
使用以下代码搜索id:
public List<T> searchByInt(int id) {
return getEntityManager().createNamedQuery("Userdetails.searchByInt").setParameter("id", id).getResultList();
}