Jakarta Persistence (JPA) Annotation Type

jakarta.persistence.ColumnResult

Implemented Interfaces:
Annotation

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")
    })

See Also:
Since:
Jakarta Persistence (JPA) 1.0

Public Instance Methods

String name()
(Required) The name of a column in the SELECT clause of a SQL query
Since:
Jakarta Persistence (JPA) 1.0
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:
Jakarta Persistence (JPA) 2.1

Annotation Elements

This is a marker annotation with no members/elements.

Additional JDK methods inherited from java.lang.annotation.Annotation

java.lang.annotation.Annotation/annotationType(), java.lang.annotation.Annotation/equals(Object), java.lang.annotation.Annotation/hashCode(), java.lang.annotation.Annotation/toString()