//$Id: NamedQuery.java 11282 2007-03-14 22:05:59Z epbernard $
//EJB3 Specification Copyright 2004-2006 Sun Microsystems, Inc.
package javax.persistence;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.RetentionPolicy.*;
import static java.lang.annotation.ElementType.*;

/**
 * Is used to specify a named query in the Java Persistence query language, which is a static
 * query expressed in metadata. Query names are scoped to the persistence unit.
 *
 * @author Emmanuel Bernard
 */
//TODO remove the mackage target
@Target({TYPE}) @Retention(RUNTIME)
public @interface NamedQuery {
	/**
	 * Refers to the query when using the EntityManager methods that create query objects.
	 */
	String name();
	/**
	 * The query string in the Java Persistence query language
	 */
	String query();
	/**
	 * Vendor-specific query hints
	 */
	QueryHint[] hints() default {};
}
