タイムラインに検索機能をつける②

フォームに入力された”keyword”という値をデータベースから取り出すための処理をしました。 pgAdmin3を起動し、EipTTimelineというテーブルの中身を確認しつつ進めていきました。


TimelineSelectData.java

/**
   * 一覧データを取得します。 <BR>
   *
   * @param rundata
   * @param context
   * @return
   */
  @Override
  public ResultList<EipTTimeline> selectList(RunData rundata, Context context) {
    try {

      // 指定グループや指定ユーザをセッションに設定する.
      setupLists(rundata, context);

      String keywordParam = rundata.getParameters().getString("keyword");

      ResultList<EipTTimeline> list = new ResultList<EipTTimeline>();
      if ((useridList != null && useridList.size() > 0)) {
        // 表示するカラムのみデータベースから取得する.
        list =
          TimelineUtils.getTimelineList(
            uid,
            Arrays.asList(0),
            null,
            current_page,
            getRowsNum(),
            0,
            useridList,
            keywordParam);
      }

      return list;
    } catch (Exception ex) {
      logger.error("timeline", ex);
      return null;

    }
  }

TimelineUtils.java

if ((keywordParam != null) && (!keywordParam.equals(""))) {
      // 選択したキーワードを指定する.
      String keyword = "%" + keywordParam + "%";
      body.append(" AND ");
      body.append("eip_t_timeline.note LIKE '");
      body.append(keyword);
      body.append("' ");
    }
  public static ResultList<EipTTimeline> getTimelineList(Integer userId,
      List<Integer> parentIds, String type, int page, int limit, int minId,
      List<Integer> userIds, String keywordParam) {

    if (parentIds == null || parentIds.size() == 0) {
      return new ResultList<EipTTimeline>(
        new ArrayList<EipTTimeline>(0),
        -1,
        -1,
        0);