Как установить свойство oracle.jdbc.V8Compatible - PullRequest
0 голосов
/ 03 марта 2011

Я использую Oracle 10g с приложением Grails 1.3.2.Я нацеливаюсь на устаревшую схему со всеми типами столбцов Date, которые используются для хранения времени.Я считаю, что мне нужно установить свойство oracle.jdbc.V8Compatible на true где-нибудь, чтобы использовать метод экземпляра Groovy Sql.rows (который использует ResultSet.getObject под капотом), чтобы получить java.sql.Timestamp объекты с временными компонентами, сохраненными вместо java.sql.Dateобъекты с урезанным компонентом времени (см. this ).Где найти правильное / лучшее место для установки / как установить свойство oracle.jdbc.V8Compatible в приложении Grails?

мы используем DataSource.groovy для разработки и конфигурацию JBoss JNDI для производства.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2011

Я отказался от подхода Sql.rows / V8Compatibility и вместо этого просто использую пользовательскую функцию:

public static java.sql.Timestamp sqlScalarTimestamp(dataSource, query, params) {
    Sql sql;
    try {
        sql = new Sql(dataSource)
        def result = null
        sql.query(query, params) { rs ->
            if(rs.next())
                result = rs.getTimestamp(1)
        }
        return result
    } finally {
        if(sql != null)
            sql.close()
    }
}
0 голосов
/ 03 марта 2011

Для среды разработки предлагаю указать это в DataSource.groovy:

dataSource {
    // common settings          
}
environments {
    development {
        dataSource {
            properties = "oracle.jdbc.V8Compatible=true"
        }
    }   
}

Для производства вы должны указать это в свойстве соединения для источника данных.

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