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

您发布的代码是 Seam 中为基于列表的视图创建支持 bean(或“动作”)的标准方法。它ProjectList基于 JPA 查询(称为“EJBQL”)创建结果集,并且限制是一种为此查询动态创建 WHERE 子句的方法,例如基于用户输入。

用户输入很可能放置在名为“ project”的实例变量中。限制(总共 2 个)仅选择processOwnerANDprojectName等于processOwnerAND 中的projectName集合“ project”(基于不区分大小写的比较)的记录(从对应于 Project 实体类的表中)。

于 2010-08-05T15:20:53.483 回答