简体   繁体   English

在EJBQL for Seam中使用限制

[英]Use Of Restriction in EJBQL for Seam

I am very new to Seam, I need some clarification in this below code , I need to know how it works, what is use of RESTRICTIONS in this code ....... 我是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;
 }
}

The code you posted is a standard approach in Seam to create a backing bean (or "action") for views that are list-based. 您发布的代码是Seam中的一种标准方法,用于为基于列表的视图创建备用bean(或“操作”)。 The ProjectList creates a result set based on the JPA query (called "EJBQL"), and the restrictions are aa means to dynamically create a WHERE clause for this query, for instance based on user input. ProjectList基于JPA查询(称为“ EJBQL”)创建结果集,并且限制是一种例如基于用户输入为该查询动态创建WHERE子句的方法。

The user input is most likely placed in the instance var called " project ". 用户输入很可能放在名为“ project ”的实例变量中。 The restrictions (2 in total) select only records (from the table corresponding to the Project entity class) for which the processOwner AND the projectName are equal to the processOwner AND the projectName set in " project " (based on a case-insensitive comparison). 限制(总共2条)(从与Project实体类相对应的表中)仅选择processOwnerprojectName等于在“ project ”中设置的processOwner AND projectName (基于不区分大小写的比较) 。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM