我是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;
}
}
答案 0 :(得分:0)
您发布的代码是Seam中的标准方法,用于为基于列表的视图创建辅助bean(或“操作”)。 ProjectList
基于JPA查询(称为“EJBQL”)创建结果集,并且限制是为此查询动态创建WHERE子句的方法,例如基于用户输入。
用户输入很可能放在名为“project
”的实例var中。限制(总共2个)仅选择processOwner
和projectName
等于processOwner
和{{1}的记录(来自与Project实体类对应的表)在“projectName
”中设置(基于不区分大小写的比较)。