Annotation Interface ColumnResult


@Target({}) @Retention(RUNTIME) public @interface ColumnResult
Used in conjunction with the SqlResultSetMapping, NamedNativeQuery, 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:
1.0
See Also:
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    (Required) The name of a column in the SELECT clause of a SQL query
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    (Optional) The Java type to which the column type is to be mapped.
  • Element Details

    • name

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

      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 is used.
      Since:
      2.1
      Default:
      void.class