jpa検索機能作成
検索バーに名前を打ち込んでテーブル内のデータをviewへ表示させたいのですがうまくいきません。
例)「た」と打ち込んで「たなか」「たむら」をヒットさせる
createNamedQueryのsetParameterメソッドを利用して引数を動的に取得するようにしていますが
複数のレコードを取得できない状態です。
例)「た」と打ち込むと「Operand should contain 1 column(s)」とのエラーが表示される。
あいまい検索で複数のレコードを取得するにはどのようにすればよろしいでしょうか。
クエリ文
query = "SELECT r FROM Report AS r WHERE r.employee = :employee"
query = "SELECT e FROM Employee AS e WHERE e.name LIKE :name"
コントローラ
String employee_name = request.getParameter("search");
//クエリの結果を変数へ格納、該当する名前のレコードを取得
try{List<Employee> employee_search = em.createNamedQuery("getEmployeesName" , Employee.class)
.setParameter("name",employee_name + "%" )
.getResultList();
System.out.println(employee_search);
//レポートテーブル内データ取得
List<Report> r_employee_id = em.createNamedQuery("getCreateUser" , Report.class)
.setParameter("employee", employee_search)
.getResultList();
em.close();