To replicate the issue, you can simply run the Unit Test contained in the attached Maven project:
There are two entities:
-
Repository
-
RepositoryWithExplicitCacheStrategy
Running the test: {DefaultCacheStrategySettingsTest:java}
doInTransaction(session -> { Repository repository = new Repository("Hibernate-Master-Class"); session.persist(repository); RepositoryWithExplicitCacheStrategy repositoryWithExplicitCacheStrategy = new RepositoryWithExplicitCacheStrategy("RepositoryWithExplicitCacheStrategy"); session.persist(repositoryWithExplicitCacheStrategy); }
); doInTransaction(session -> { Repository repository = (Repository) session.get(Repository.class, 1L); RepositoryWithExplicitCacheStrategy repositoryWithExplicitCacheStrategy = (RepositoryWithExplicitCacheStrategy) session.get(RepositoryWithExplicitCacheStrategy.class, 1L); }); doInTransaction(session -> { Repository repository = (Repository) session.get(Repository.class, 1L); RepositoryWithExplicitCacheStrategy repositoryWithExplicitCacheStrategy = (RepositoryWithExplicitCacheStrategy) session.get(RepositoryWithExplicitCacheStrategy.class, 1L); }
);
Generates the following output:
Only the RepositoryWithExplicitCacheStrategy gets cached because it has an explicit Cache Concurrency Strategy.
|