Как установить zeroDateTimeBehavior на JNDI DataSource без использования URL? - PullRequest
3 голосов
/ 06 июля 2010

В этот вопрос о переполнении стека на постере подразумевается, что вы можете установить zeroDateTimeBehavior="convertToNull" в качестве атрибута тега <Resource>.

Кто-нибудь знает, возможно ли это?Все документы, на которые я смотрел, говорят, что вы можете добавить это свойство только в URL соединения с базой данных.

Я на самом деле ищу способ установить это свойство в DataSource из контекста Spring, поэтомучто нам не нужно обходиться и обновлять все наши различные среды, или мы рискуем потерять свойство, если кому-то понадобится изменить URL-адрес соединения.

Источник данных, настроенный Spring, делает это очень просто:

<bean id="propsDataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
  <property name="url" value="${connection.url}"/>
  <property name="user" value="${connection.username}"/>
  <property name="password" value="${connection.password}"/>
  <property name="zeroDateTimeBehavior" value="convertToNull"/>
 </bean>

Кто-нибудь знает, как сделать это через настроенный JNDI DataSource?

Спасибо,

1 Ответ

0 голосов
/ 07 июля 2010

В документах http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html указано, что его следует передать по URL.

Можете ли вы попробовать, если это работает для вас?

<ResourceParams name="jdbc/DataSourceName">
                    <parameter>
                         <name>zeroDateTimeBehavior</name>
                         <value>convertToNull</value>
                     </parameter>
</ResourceParams> 
...