Есть ли причина хранить файл c3p0.properties при использовании hibernate.cfg.xml?

Наш проект использует Hibernate (3.3.2) с c3p0 в качестве пула соединений. Какое-то время некоторые свойства c3p0 были в файле c3p0.properties, а другие — в hibernate.cfg.xml. Я только что переместил последние два свойства c3p0 в hibernate.cfg.xml и подтвердил, что они соблюдаются.

Есть ли ЛЮБАЯ причина хранить файл свойств c3p0, когда свойства c3p0 можно указать в hibernate.cfg.xml? Например, есть свойство, которое нельзя там настроить, или другая причина, о которой я не думаю. Мне кажется, что указание свойств c3p0 в двух местах просто вызывает путаницу,

Я думаю, что ранее существовало мнение, что некоторые свойства нельзя передать в hibernate.cfg.xml, что, как я полагаю, является просто мифом. Это основная причина этого вопроса.


person Joshua McKinnon    schedule 22.02.2011    source источник


Ответы (2)


Нет, нет причин. (у меня даже нет hibernate.cfg.xml — все в конфигурации spring)

person Bozho    schedule 22.02.2011
comment
Отлично - это все, что мне нужно для уверенности :) - person Joshua McKinnon; 22.02.2011

То, что вы говорите, похоже, не соответствует документам c3p0. А именно кажется, что есть только подмножество параметров c3p0, к которым можно получить доступ через hibernate.cfg.xml. Все остальное нужно задавать через отдельный файл c3p0.properties. См. http://www.mchange.com/projects/c3p0/index.html#hibernate-specific

Редактировать: кажется, что документы c3p0 совершенно неверны. Если вы сделаете, как они говорят (например, включите дополнительный файл c3p0.properties), он будет проигнорирован. Однако, если вы просто таким же образом добавите свойства в файл конфигурации гибернации, все будет работать нормально. Например. добавление следующего в hibernate.cfg.xml сработало, где прописанный метод не сработал:

<property name="hibernate.c3p0.acquireRetryAttempts">100</property>
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property>
<property name="hibernate.c3p0.unreturnedConnectionTimeout">120</property>
<property name="hibernate.c3p0.checkoutTimeout">30000</property>

Есть 2 часа моей жизни, которые я не верну. :-(

person Elroid    schedule 13.05.2011
comment
Да, я думаю, что это была первоначальная причина, по которой я задал вопрос, однако я забыл об этом. Похоже, была точка, в которой некоторые свойства нельзя было передать другими способами... - person Joshua McKinnon; 13.05.2011