0

私は Seam に非常に慣れていないので、この以下のコードを明確にする必要があります。どのように機能するか、このコードでの RESTRICTIONS の使用法を知る必要があります .......

package org.domain.pixel.action;

import org.domain.pixel.entity.*;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.framework.EntityQuery;
import java.util.Arrays;

@Name("projectList")
public class ProjectList extends EntityQuery<Project> {

 private static final long serialVersionUID = -7673337640345325071L;

 private static final String EJBQL = "select project from Project project";

 private static final String[] RESTRICTIONS = { 
  "lower(project.processOwner) like lower(concat(#{projectList.project.processOwner},'%'))",
  "lower(project.projectName) like lower(concat(#{projectList.project.projectName},'%'))",

   }; 

 private Project project = new Project();

 public ProjectList() {
  ;
  setEjbql(EJBQL);
  setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
  setMaxResults(25);
 }

 public Project getProject() {
  return project;
 }
}
4

1 に答える 1

0

投稿したコードは、リストベースのビューのバッキング Bean (または「アクション」) を作成するための Seam の標準的なアプローチです。はProjectListJPA クエリ (「EJBQL」と呼ばれる) に基づいて結果セットを作成し、制限は、たとえばユーザー入力に基づいて、このクエリの WHERE 句を動的に作成する手段です。

ユーザー入力は、" " と呼ばれるインスタンス var に配置される可能性が最も高いprojectです。制限 (合計 2 つ) は、(大文字と小文字を区別しない比較に基づいて) AND が " "processOwnerのANDセットprojectNameと等しいレコードのみを (Project エンティティ クラスに対応するテーブルから) 選択します。processOwnerprojectNameproject

于 2010-08-05T15:20:53.483 に答える