不从搜索查询中检索任何数据

时间:2013-11-21 18:37:49

标签: database search jpa derby

我需要搜索所有用户名和应用程序,以打印出包含搜索字符串的所有用户名。我想我已经这样做但是当我执行searchByString()时,我得不到任何结果。

AbstractFacade

/* trying out a search function */
public List<T> searchByString(String string) {
    System.out.println("in SearchByString");
    return getEntityManager().createNamedQuery("Userdetails.findByUsername").setParameter("username", "%" + string + "%").getResultList();
}

Userdetails.java这是查询完成的地方

@Entity
@Table(name = "USERDETAILS")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Userdetails.findAll", query = "SELECT u FROM Userdetails u"),
    @NamedQuery(name = "Userdetails.findById", query = "SELECT u FROM Userdetails u WHERE u.id = :id"),
    @NamedQuery(name = "Userdetails.findByUsername", query = "SELECT u FROM Userdetails u WHERE u.username = :username")})

我无法获得填写清单。我想知道查询是否正确运行并且正在检索任何内容,所以我希望能够查看它在运行时检索到的内容,因此我可以查看为什么没有任何内容显示给用户。

1 个答案:

答案 0 :(得分:3)

您的查询参数看起来像您想要一个like子句,但您的命名查询使用=。变化

SELECT u FROM Userdetails u WHERE u.username = :username

SELECT u FROM Userdetails u WHERE u.username like :username

它应该有用。