Я успешно интегрировал спящий режим в свое веб-приложение. Я был доволен своей persistence.xml
конфигурацией
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="PU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLiteDialect" />
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.connection.url" value="jdbc:sqlite:/tmp/database.db" />
<property name="hibernate.connection.driver_class" value="org.sqlite.JDBC" />
</properties>
</persistence-unit>
</persistence>
Затем я решил использовать пул соединений HikariCp после прочтения это
Встроенный пул соединений не предназначен для производственных сред.
С помощью этого примера мне удалось частично заставить его работать с новым persistence.xml
<persistence-unit name="PU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLiteDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.connection.provider_class" value="com.zaxxer.hikari.hibernate.HikariConnectionProvider" />
<property name="hibernate.hikari.minimumPoolSize" value="20" />
<!-- <property name="hibernate.hikari.maximumPoolSize" value="100" /> -->
<property name="hibernate.hikari.idleTimeout" value="30000" />
<property name="hibernate.hikari.dataSourceClassName" value="org.sqlite.SQLiteDataSource" />
<property name="hibernate.hikari.dataSource.url" value="jdbc:sqlite:/tmp/database.db" />
<!-- <property name="hibernate.hikari.dataSource.user" value="" />
<property name="hibernate.hikari.dataSource.password" value="" /> -->
</properties>
</persistence-unit>
Но я получаю сообщение об ошибке, если пытаюсь установить minimumPoolSize, maximumPoolSize, пользователя и пароль. Если их закомментировать, все работает отлично.
org.hibernate.HibernateException: java.lang.RuntimeException: java.beans.IntrospectionException: метод не найден: setMinimumPoolSize
Как настроить jpa для использования спящего режима с пулом hikaricp? Я предпочитаю не разбрасывать в своем коде вещи, специфичные для гибернации, поскольку я хочу сохранить абстрактный уровень ORM. Я нашел много запутанных материалов и получил больше вопросов, чем ответов. Как файлы persistence.xml, hibernate.properties и hibernate.cfg.xml связаны друг с другом? Что такое JNDI и как его использовать? И что такое эта конфигурация компонента?