javax.persistence

## Annotation Type ColumnResult

    @Target(value={})
     @Retention(value=RUNTIME)
    public @interface ColumnResult

Used in conjunction with the `SqlResultSetMapping` annotation or `ConstructorResult` annotation to map a column of the SELECT list of a SQL query.

The `name` element references the name of a column in the SELECT list — i.e., column alias, if applicable. Scalar result types can be included in the query result by specifying this annotation in the metadata.

     Example:
       Query q = em.createNativeQuery(
           "SELECT o.id AS order_id, " +
               "o.quantity AS order_quantity, " +
               "o.item AS order_item, " +
               "i.name AS item_name, " +
             "FROM Order o, Item i " +
             "WHERE (order_quantity > 25) AND (order_item = i.id)",
           "OrderResults");

       @SqlResultSetMapping(name="OrderResults",
           entities={
               @EntityResult(entityClass=com.acme.Order.class, fields={
                   @FieldResult(name="id", column="order_id"),
                   @FieldResult(name="quantity", column="order_quantity"),
                   @FieldResult(name="item", column="order_item")})},
           columns={
               @ColumnResult(name="item_name")}
           )

Since:
  Java Persistence 1.0
See Also:
  `SqlResultSetMapping`

### Required Element Summary

Required Elements
`String` `name` (Required) The name of a column in the SELECT clause of a SQL query

### Optional Element Summary

Optional Elements
`Class` `type` (Optional) The Java type to which the column type is to be mapped.

### Element Detail

#### name

    public abstract String name

(Required) The name of a column in the SELECT clause of a SQL query

#### type

    public abstract Class type

(Optional) The Java type to which the column type is to be mapped. If the `type` element is not specified, the default JDBC type mapping for the column will be used.

Since:
  Java Persistence 2.1

Default:
  void.class