public class

Select

extends Object
java.lang.Object
   ↳ com.atlassian.jira.entity.Select

Class Overview

Select is the entry point to building up a SelectQuery which can be run in OfBiz Entity Engine.

eg

 SelectQuery<GenericValue> query = Select.columns().from("FilterSubscription")
      .whereEqual("group", (String) null)
      .andEqual("username", username)
      .orderBy("id desc");
 
 

If you are selecting a single column, then you can it can return String objects instead of GenericValues like

 SelectQuery<String> query = Select.distinctString("username").from("FilterSubscription");
 List<String> vals = query.runWith(delegator).asList();
 
 

You can also use an EntityFactory to automatically convert the GenericValues to other entity objects.

 List<ProjectCategory> categories = Select.from(Entity.PROJECT_CATEGORY).runWith(delegator).asList();
 
 

Summary

Nested Classes
class Select.ExecutableContext<E> Partially constructed query that has enough information supplied to form a complete query. 
class Select.LimitContext<E> A fully specified query that is ready to be executed. 
class Select.OrderByContext<E> A partially constructed query with completed column, entity, where condition, and ordering information already specified. 
class Select.SelectColumnsContext Partially constructed query that has a column list but no entity name, yet. 
class Select.SelectColumnsFromContext<E> A partially constructed query that may accept .where and .orderBy clauses. 
class Select.SelectSingleColumnContext<E> Partially constructed query that has a column list (with a single target column) but no entity name, yet. 
class Select.WhereClauseAwareContext<E> Marker for contexts that can accept a where clause. 
class Select.WhereContext<E> A partially constructed query that may accept .where and .orderBy clauses. 
Public Constructors
Select()
Public Methods
static Select.SelectColumnsContext columns(List<String> columns)
Begins a SELECT query that will only retrieve the specified columns.
static Select.SelectColumnsContext columns(String... columns)
Begins a SELECT query that will only retrieve the specified columns.
static SelectColumnsFromContext<Long> countFrom(String entityName)
Builds a "SELECT COUNT(*) FROM ..." query for the given entity.
static Select.SelectColumnsContext distinct(String... columns)
Begins a SELECT DISTINCT query that will only retrieve the specified columns.
static SelectSingleColumnContext<String> distinctString(String columnName)
Begins a SELECT DISTINCT query that will only retrieve the specified String column.
static SelectColumnsFromContext<GenericValue> from(String entityName)
Begins a SELECT * query for the specified entity.
static <E> SelectColumnsFromContext<E> from(NamedEntityBuilder<E> entityFactory)
Begins a SELECT * query for the specified entity factory.
static SelectSingleColumnContext<Long> id()
Begins a SELECT query that will only retrieve the "id" field, which must use Long values.
static SelectSingleColumnContext<String> stringColumn(String columnName)
Begins a SELECT query that will only retrieve the specified String column.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public Select ()

Public Methods

public static Select.SelectColumnsContext columns (List<String> columns)

Begins a SELECT query that will only retrieve the specified columns.

Parameters
columns the list of fields to retrieve; must not be null or contain any null values
Returns
  • a partially constructed query; use .from(entityName) to continue building it

public static Select.SelectColumnsContext columns (String... columns)

Begins a SELECT query that will only retrieve the specified columns.

Parameters
columns the fields to retrieve; must not be null or contain any null values
Returns
  • a partially constructed query; use .from(entityName) to continue building it

public static SelectColumnsFromContext<Long> countFrom (String entityName)

Builds a "SELECT COUNT(*) FROM ..." query for the given entity.

For example:

 long count = Select.countFrom(Entity.Name.COMMENT)
                    .whereEqual("author", userKey)
                    .runWith(ofBizDelegator)
                    .singleValue();
 

This method requires the existence of a "Count" view in the entity model, which has not been defined for all entities. Consider building a normal query with .count() as the finishing action for a more flexible alternative.

Parameters
entityName the Entity
Returns
  • a query builder for a "SELECT COUNT(*) FROM ..." query

public static Select.SelectColumnsContext distinct (String... columns)

Begins a SELECT DISTINCT query that will only retrieve the specified columns.

Parameters
columns the fields to retrieve; must not be null or contain any null values
Returns
  • a partially constructed query; use .from(entityName) to continue building it

public static SelectSingleColumnContext<String> distinctString (String columnName)

Begins a SELECT DISTINCT query that will only retrieve the specified String column.

Parameters
columnName the field to query
Returns
  • a partially constructed query; use .from(entityName) to continue building it

public static SelectColumnsFromContext<GenericValue> from (String entityName)

Begins a SELECT * query for the specified entity.

Parameters
entityName the name of the entity to query
Returns
  • a partially constructed query; use one of the .where... constraints, an orderBy, or a .runWith method to continue building it

public static SelectColumnsFromContext<E> from (NamedEntityBuilder<E> entityFactory)

Begins a SELECT * query for the specified entity factory.

As the query returns results, build(GenericValue) is used on each value to yield its corresponding entity value.

Parameters
entityFactory the entity factory to use for coverting GenericValue to the desired return type
Returns
  • a partially constructed query; use one of the .where... constraints, an orderBy, or a .runWith method to continue building it

public static SelectSingleColumnContext<Long> id ()

Begins a SELECT query that will only retrieve the "id" field, which must use Long values.

WARNING: Not suitable for use with "id" columns that return a String, such as those used for issue constants.

Returns
  • a partially constructed query; use .from(entityName) to continue building it

public static SelectSingleColumnContext<String> stringColumn (String columnName)

Begins a SELECT query that will only retrieve the specified String column.

Parameters
columnName the field to query
Returns
  • a partially constructed query; use .from(entityName) to continue building it