如何使用JPA进行简单的用户名搜索查询

时间:2013-12-03 08:56:27

标签: java jpa

我试图让用户搜索用户名并输出结果,我想我几乎所有的东西我只是不确定我是否正确地使用了正确的类;

目前我在视图中

<p:inputText id="search" value="#{bean.userToDelete.getUsername}"  />   
                <p:commandButton value="Search" action="#{bean.searchUser}" update="group" />

应该允许用户输入搜索词

然后转到“bean”,它是一个控制器 这是我目前所有的

public void searchUser() {
    }

但在我的UserService(在我的业务层中)我有

public String usernameSearch(String username) {
        List<User> usernameSearch = this.userFacade.usernameSearch(username);
        return "/index";
    }

我认为应该能够搜索db?

但是也有一个带

的UserFacade bean
   public List<User> usernameSearch(String searchString) {
        Query q = em.createQuery("SELECT u FROM USERS U WHERE u.username = :search");
        q.setParameter("search", searchString);
        return q.getResultList();
    }

我想我的问题是我是否拥有运行搜索查询所需的所有内容,如何将它们全部放在一起以使其正常工作?

对不起,我是新手,因为我用来做所有这一切的方法结果是错误的,目的是一旦我能理解这是如何工作我将能够做更多,但它只是理解如何处理工作atm

1 个答案:

答案 0 :(得分:1)

JPQL使用实体和字段/属性名称。它永远不会使用表和列名称。而类,字段和别名都区分大小写,就像Java一样。

您的查询应该是:

select u from User u where u.name = :search

(假设映射的字段或getter为name / getName()