При использовании Hibernate и JPA у меня есть существующий абстрактный класс DAO, который настраивает менеджер сущностей следующим образом:
@PersistenceContext(unitName = "<name>")
private EntityManager entityManager;
И в некоторых методах он используется следующим образом:
public ObjectType findByPrimaryKey(int id) {
return entityManager.find(ObjectType, id);
}
Я хотел установить параметр конфигурации базы данных в той же транзакции, что и запрос "найти". Тем не менее, я не могу найти внутреннюю транзакцию, которую использует entityManager. Я написал Aspect, который проверяет аннотацию Transactional и устанавливает там переменную, и добавил @Transactional поверх метода findByPrimaryKey, но он все еще не установлен в сеансе.
Есть ли здесь что-то неправильное или другой способ сделать это? В идеале нужно устанавливать специальную переменную перед каждым запросом.