2.4.10. Queries
Since Hibernate has more features on named queries than the one defined in the EJB3 specification,
@org.hibernate.annotations.NamedQuery
, @org.hibernate.annotations.NamedQueries
, @org.hibernate.annotations.NamedNativeQuery
and @org.hibernate.annotations.NamedNativeQueries
have been introduced. They add some attributes to the standard version and can be used as a replacement:
- flushMode: define the query flush mode (Always, Auto, Commit or Manual)
- cacheable: whether the query should be cached or not
- cacheRegion: cache region used if the query is cached
- fetchSize: JDBC statement fetch size for this query
- timeout: query time out
- callable: for native queries only, to be set to true for stored procedures
- comment: if comments are activated, the comment seen when the query is sent to the database.
- cacheMode: Cache interaction mode (get, ignore, normal, put or refresh)
- readOnly: whether or not the elements retrievent from the query are in read only mode.
Those hints can be set in a standard
@javax.persistence.NamedQuery
annotations through the detyped @QueryHint
. Another key advantage is the ability to set those annotations at a package level.