【问题标题】:Not retrieving any data from a search query不从搜索查询中检索任何数据
【发布时间】:2013-11-21 18:37:49
【问题描述】:

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

抽象立面

/* 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")})

我无法获得已填写的列表。我想知道查询是否正常运行并检索任何内容,所以我希望能够看到它在运行时检索到的内容,这样我就可以看看为什么什么都没有显示给用户。

【问题讨论】:

    标签: database search jpa derby


    【解决方案1】:

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

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

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

    它应该可以工作。

    【讨论】:

    • 非常感谢,现在一切正常!几天我一直坚持这一点,所以谢谢!!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2017-10-14
    相关资源
    最近更新 更多