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: