/*
 * Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.  The Eclipse Public License is available
 * at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
 * is available at http://www.eclipse.org/org/documents/edl-v10.php.
 */
package javax.persistence;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

References name of a column in the SELECT clause of a SQL query - 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:
  • SqlResultSetMapping
Since:Java Persistence 1.0
/** * References name of a column in the SELECT clause of a SQL query - * i.e., column alias, if applicable. Scalar result types can be * included in the query result by specifying this annotation in * the metadata. * <p> * <pre> * * 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"); * * &#064;SqlResultSetMapping(name="OrderResults", * entities={ * &#064;EntityResult(entityClass=com.acme.Order.class, fields={ * &#064;FieldResult(name="id", column="order_id"), * &#064;FieldResult(name="quantity", column="order_quantity"), * &#064;FieldResult(name="item", column="order_item")})}, * columns={ * &#064;ColumnResult(name="item_name")} * ) * </pre> * * @see SqlResultSetMapping * @since Java Persistence 1.0 */
@Target({}) @Retention(RUNTIME) public @interface ColumnResult {
(Required) The name of a column in the SELECT clause of a SQL query
/** * (Required) The name of a column in the SELECT clause of a SQL query */
String name();
(Optional) The Java type to which the column type is to be mapped.
/** * (Optional) The Java type to which the column type is to be mapped. */
Class type() default void.class; }