Я использую JPA и кэш второго уровня для всех ссылочных объектов.
Все работает хорошо, я могу получить объекты из кэша второго уровня, если они уже были выбраны ранее.
Теперь у меня есть два приложения, оба они используют одну и ту же базу данных (поэтому они оба используют одну и ту же таблицу, значения и т. Д.).
1. Приложение только для чтения просто читает данные из базы данных, оно вообще не изменяет базу данных. Поэтому я выбираю стратегию параллельного исполнения READ_ ONLY для кэша второго уровня, стремясь повысить производительность.
2. Приложение для чтения и записи, а также для чтения и записи данных базы данных, оно модифицирует базу данных. Следовательно, я должен выбрать стратегию параллелизма «READ_ WRITE» или «NONSTRICT_ READ_ WRITE» для кэша второго уровня.
Однако стратегия параллелизма назначается в аннотации для каждого класса сущностей, поэтому я не могу изменить ее программно. (Я не использую файлы сопоставления классов для JPA, поэтому я не могу использовать два файла сопоставления, каждый для своей стратегии параллелизма для одного и того же класса сущности.)
Мой вопрос: Есть ли хороший способ изменить стратегию одновременного использования кэша второго уровня на лету в соответствии с моими двумя различными приложениями?