Обычно я использую постоянство. xml для настройки спящего режима с помощью таких свойств, как
<properties>
<property name="javax.persistence.lock.timeout" value="90000"/>
<property name="javax.persistence.query.timeout" value="90000" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2012Dialect" />
<!-- ... -->
Однако мне нужно изменить одно свойство во время выполнения (точнее, мне нужно отрегулируйте значение javax.persistence.query.timeout
во время выполнения). Поэтому я попытался настроить сеанс вручную в ситуациях, когда мне нужны свойства, отличные от значений по умолчанию, например:
Configuration config = new Configuration();
config.addResource("persistence.xml");
config.setProperty("javax.persistence.query.timeout", "100000");
Session session = config.buildSessionFactory().getCurrentSession();
Однако это дает следующее исключение:
org.hibernate.boot.MappingNotFoundException: Mapping (RESOURCE) not found : persistence.xml : origin(persistence.xml)
Что имеет смысл, как постоянство . xml не является обычным файлом ресурсов гибернации. Итак, как мне установить конфигурацию на основе persisten c. xml (я не хочу настраивать все свойства дважды)? Или, в более общем плане, как мне перенастроить спящий режим во время выполнения?
Обратите внимание, что это похоже на, но не дублирует (поскольку он более конкретен c), этот пост .