Search

3.3. Mapping Queries

download PDF

3.3.Mapping JPAQL/HQL queries. Mapping JPAQL/HQL queries

You can map EJBQL/HQL queries using annotations. @NamedQuery and @NamedQueries can be defined at the class level or in a JPA XML file. However their definitions are global to the session factory/entity manager factory scope. A named query is defined by its name and the actual query string.
<entity-mappings>
    <named-query name="plane.getAll">
        <query>select p from Plane p</query>
    </named-query>
    ...
</entity-mappings>
...

@Entity
@NamedQuery(name="night.moreRecentThan", query="select n from Night n where n.date >= :date")
public class Night {
    ...
}

public class MyDao {
    doStuff() {
        Query q = s.getNamedQuery("night.moreRecentThan");
        q.setDate( "date", aMonthAgo );
        List results = q.list();
        ...
    }
    ...
}
You can also provide some hints to a query through an array of QueryHint through a hints attribute.
The availabe Hibernate hints are
Table 3.2. Query hints
hintdescription
org.hibernate.cacheableWhether the query should interact with the second level cache (default to false)
org.hibernate.cacheRegionCache region name (default used otherwise)
org.hibernate.timeoutQuery timeout
org.hibernate.fetchSizeresultset fetch size
org.hibernate.flushModeFlush mode used for this query
org.hibernate.cacheModeCache mode used for this query
org.hibernate.readOnlyEntities loaded by this query should be in read only mode or not (default to false)
org.hibernate.commentQuery comment added to the generated SQL
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.