JPA TypedQuery.setHint with standard hint javax.persistence.cache.retrieveMode and CacheRetrieveMode.BYPASS not honored

Description

As per the the JPA2 documentation, TypedQuery.setHint() accepts a string key of "javax.persistence.cache.retrieveMode" and enum value from CacheRetrieveMode. CacheRetrieveMode.BYPASS is specified to: "Bypass the cache: get data directly from the database." This is a standard JPA hint, required to be supported by all JPA providers.

When using this hint to attempt to bypass the cache with Hibernate as JPA provider, it is effectively ignored; stale data is returned, rather than current the data in the database.

A brief and uninformed inspection of the code indicates this is likely not JPA-specific, but affects Hibernate Core when using CacheMode, as well.

The attached testcase contains a small Gradle project with a single JUnit test demonstrating the behavior. The test is self-contained and uses "raw" JDBC to manipulate the database around the work done with the EntityManager. The problem is exhibited on all 3.6.* versions released to date; I have not tried older versions, nor the 4.* line.

Environment

Windows, Linux; Oracle, H2

Activity

Show:
Jonathan Cottrill
March 14, 2014, 2:59 AM

Note: This is likely to be closely related to HHH-9046, which describes a very similar problem when using Hibernate core APIs.

Brett Meyer
April 7, 2014, 5:41 PM

In an effort to clean up, in bulk, tickets that are most likely out of date, we're transitioning all ORM 3 tickets to an "Awaiting Test Case" state. Please see http://in.relation.to/Bloggers/HibernateORMJIRAPoliciesAndCleanUpTactics for more information.

If this is still a legitimate bug in ORM 4, please provide either a test case that reproduces it or enough detail (entities, mappings, snippets, etc.) to show that it still fails on 4. If nothing is received within 3 months or so, we'll be automatically closing them.

Thank you!

Brett Meyer
July 8, 2014, 3:11 PM

Bulk rejecting stale issues. If this is still a legitimate issue on ORM 4, feel free to comment and attach a test case. I'll address responses case-by-case. Thanks!

Assignee

Unassigned

Reporter

Jonathan Cottrill

Fix versions

None

Labels

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Priority

Major
Configure