Red Hat Training

A Red Hat training course is available for JBoss Enterprise Application Platform Common Criteria Certification

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.