Соединение с базой данных JPA вне постоянства. xml в приложении JavaSE - PullRequest
0 голосов
/ 14 января 2020

мы переносим наше JavaSE приложение из Hibernate 3.2 в последнюю версию Hibernate, а также пытаемся использовать EntityManager вместо объекта Session. Также мы хотим избавиться от файлов сопоставления xml и использовать вместо этого аннотации.

Прямо сейчас мы создаем SessionFactory на основе hibernate.cfg. xml следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
            <property name="hibernate.c3p0.min_size">3</property>
            <property name="hibernate.c3p0.max_size">10</property>
            <property name="hibernate.c3p0.acquireRetryAttempts">0</property>
            <property name="hibernate.c3p0.acquireRetryDelay">5000</property>
            <property name="hibernate.c3p0.breakAfterAcquireFailure">false</property>
            <property name="hibernate.c3p0.acquireIncrement">5</property>
            <property name="hibernate.c3p0.idleConnectionTestPeriod">300</property>
            <property name="hibernate.c3p0.initialPoolSize">5</property>
            <property name="hibernate.c3p0.maxIdleTime">300</property>
            <property name="hibernate.c3p0.maxStatements">100</property>
            <property name="hibernate.connection.driver_class">com.informix.jdbc.IfxDriver</property>
            <property name="hibernate.connection.url">jdbc:informix-sqli://xx.xx.xx.xx:1824/xxxx:INFORMIXSERVER=xxxxxxxx;IFX_LOCK_MODE_WAIT=10</property>
            <property name="hibernate.connection.username">xxxxx</property>
            <property name="hibernate.connection.password">xxxxx</property>
            <property name="hibernate.dialect">org.hibernate.dialect.InformixDialect</property>
            <property name="hibernate.jdbc.batch_size">30</property>
            <property name="hibernate.show_sql">false</property>
            <property name="hibernate.format_sql">false</property>
    </session-factory>
</hibernate-configuration>

Теперь мы создали постоянство. xml и определили постоянное устройство без подключения к базе данных (поскольку подключение всегда отличается). Насколько я знаю постоянство. xml не может быть вне файла jar. Поэтому мы читаем файл hibernate.cfg. xml (сверху) на карту свойств и передаем эту карту в метод createEntityManagerFactory. Это работает, но я хотел знать, что так оно и было?

Что меня беспокоит, так это

  • hibernate-configuration-3.0.dtd - это правильная версия? Я знаю, что есть разные версии, и DTD все еще является современным решением
  • C3P0 Properties - Разработчик, который реализовал приложение, тогда использовал C3P0. Мы даже не знаем, что это такое и нужно ли нам это в JPA?

Так есть ли другой файл конфигурации для нашей цели? Мы также используем Java Service Wrapper - может быть, мы можем использовать сервисную оболочку для регистрации соединения с базой данных через JNDI или что-то в этом роде?

Спасибо за любые подходы к решению.

Многие приветствия Hauke ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...