Я прочитал форум / искал высоко и низко, но это не будет пакетным, как я ожидал.
Короче говоря, я хочу, чтобы значения Insert во временные ряды (...), (...), (...) объединяли вставку в один оператор.
Postgres 9.
Hibernate 3.4.0.
JPA 1,99
Сущность не имеет отношения к другим сущностям / коллекциям, она сама по себе является версионной и использует GenerationType.SEQUENCE
Вот что говорит интернет, чтобы активировать эту функцию.
В Java, внутри моего @Transactional, я вызываю .merge для этого типа сущности и только для этого типа. Я также пытался вызвать постоянный вызов и отключить управление версиями ... не повезло ...
Я отмечаю это в журналах: AbstractBatcher: - нет пакетных операторов для выполнения
Любая помощь?
Вот некоторая релевантная трассировка отладки ... уменьшена для простоты ...
2011-03-31 14: 20: 37,414 TRACE [pool-2-thread-3] AbstractSaveEventListener: - временный экземпляр: com.xxx.TimeSeriesEntity
2011-03-31 14: 20: 37,414 TRACE [pool-2-thread-3] DefaultPersistEventListener: - сохранение временного экземпляра
2011-03-31 14: 20: 37,414 DEBUG [pool-2-thread-3] AbstractSaveEventListener: - сгенерированный идентификатор: 188032722, с использованием стратегии: org.hibernate.id.SequenceHiLoGenerator
2011-03-31 14: 20: 37,414 TRACE [pool-2-thread-3] AbstractSaveEventListener: - сохранение [com.xxx.TimeSeriesEntity # 188032722]
2011-03-31 14: 20: 37,414 TRACE [pool-2-thread-3] Управление версиями: - с использованием начальной версии: 0
2011-03-31 14: 20: 37,414 TRACE [pool-2-thread-3] AbstractFlushingEventListener: - сеанс очистки
2011-03-31 14: 20: 37,414 DEBUG [pool-2-thread-3] AbstractFlushingEventListener: - обработка каскадов времени сброса
// надрез
2011-03-31 14: 20: 37,414 Каскад TRACE [pool-2-thread-3]: - каскад обработки ACTION_PERSIST_ON_FLUSH для: com.xxx.TimeSeriesEntity
2011-03-31 14: 20: 37,414 Каскад TRACE [pool-2-thread-3]: - завершен каскад обработки ACTION_PERSIST_ON_FLUSH для: com.xxx.TimeSeriesEntity
// надрез
2011-03-31 14: 20: 37,415 DEBUG [pool-2-thread-3] AbstractFlushingEventListener: - грязная проверка коллекций
2011-03-31 14: 20: 37,415 TRACE [pool-2-thread-3] AbstractFlushingEventListener: - Очистка сущностей и обработка ссылочных коллекций
2011-03-31 14: 20: 37,415 TRACE [pool-2-thread-3] AbstractEntityPersister: - com.xxx.TimeSeriesEntity.highestValidDataStartTime is dirty
2011-03-31 14: 20: 37,415 TRACE [pool-2-thread-3] AbstractEntityPersister: - com.xxx.TimeSeriesEntity.seriesEndTime is dirty
2011-03-31 14: 20: 37,415 TRACE [pool-2-thread-3] AbstractEntityPersister: - com.xxx.TimeSeriesEntity.seriesStartTime is dirty
2011-03-31 14: 20: 37,415 TRACE [pool-2-thread-3] DefaultFlushEntityEventListener: - Обновление объекта: [com.xxx.TimeSeriesEntity # 188032673]
2011-03-31 14: 20: 37,415 TRACE [pool-2-thread-3] Управление версиями: - Увеличение: от 0 до 1
// надрез
2011-03-31 14: 20: 37,418 TRACE [pool-2-thread-3] AbstractFlushingEventListener: - Обработка коллекций, на которые нет ссылок
2011-03-31 14: 20: 37,418 TRACE [pool-2-thread-3] AbstractFlushingEventListener: - Планирование коллекции удаляет / (повторно) создает / обновляет
2011-03-31 14: 20: 37,418 DEBUG [pool-2-thread-3] AbstractFlushingEventListener: - Сброшено: 50 вставок, 50 обновлений, 0 удалений для 50 объектов
2011-03-31 14: 20: 37,418 DEBUG [pool-2-thread-3] AbstractFlushingEventListener: - Удалено: 0 (повторных) созданий, 0 обновлений, 0 удалений в 0 коллекциях
// надрез
2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] AbstractFlushingEventListener: - выполнение сброса
2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] ConnectionManager: - регистрация начала сброса
2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] AbstractEntityPersister: - Вставка сущности: [com.xxx.TimeSeriesEntity # 188032673]
2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] AbstractEntityPersister: - Версия: 0
2011-03-31 14: 20: 37,419 DEBUG [pool-2-thread-3] AbstractBatcher: - собирается открыть PreparedStatement (open PreparedStatements: 0, глобально: 1) 2011-03-31 14: 20: 37,419 DEBUG [pool-2-thread-3] SQL: - вставить во временные ряды (calc_type, channel_id, count, data_value, granularity, high_valid_data_time, max_value, min_value, series_end_time, series_start_time, version, series_id) значения (?,?,?,?,?,?,?,?,?,?,?,?,?) 2011-03-31 14: 20: 37,419 TRACE [пул-2-нить-3] AbstractBatcher: - подготовка оператора 2011-03-31 14: 20: 37,419 TRACE [пул-2-thread-3] AbstractEntityPersister: - Обезвоживающий объект: [com.xxx.TimeSeriesEntity # 188032673] 2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] LongType: - привязка '52283' кпараметр: 2 2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] IntegerType: - привязка '0' к параметру: 11 2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] LongType: - привязка '188032673' к параметру: 12 2011-03-31 14: 20: 37,419 TRACE [pool-2-thread-3] AbstractEntityPersister: - Вставкаg entity: [com.xxx.TimeSeriesEntity # 188032674] 2011-03-31 14: 20: 37,420 TRACE [pool-2-thread-3] AbstractEntityPersister: - Версия: 0 2011-03-31 14: 20: 37,420 DEBUG [pool-2-thread-3] AbstractBatcher: - повторное использование подготовленного оператора 2011-03-31 14: 20: 37,420 DEBUG [pool-2-thread-3] SQL: - вставка во временные ряды (calc_type, channel_id, count, data_value, granularity, самые высокие_данные_данные_времени, max_value, min_value, series_end_time, series_start_time, version, series_id) значения (?,?,?,?,?,?,?,?,?,?,?,?) // snip
2011-03-31 14: 20: 37,478 DEBUG [pool-2-thread-3] AbstractBatcher: - Выполнение размера пакета: 50 2011-03-31 14: 20: 37,506 DEBUG [pool-2-thread-3] AbstractBatcher:- нет пакетных операторов для выполнения 2011-03-31 14: 20: 37,506 DEBUG [pool-2-thread-3] AbstractBatcher: - собирается закрыть PreparedStatement (открыть PreparedStatements: 1, глобально: 2) 2011-03-31 14:20: 37,506 TRACE [пул-2-нить-3] AbstractBatcher: - заключительный оператор 2011-03-31 14: 20: 37,506 TRACE [пул-2-нить-3] ConnectionManager: - регистрация завершенного сброса 2011-03-31 14: 20: 37,506 TRACE [pool-2-thread-3] AbstractFlushingEventListener: - последующая очистка 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] VersionValue: - версия стратегии несохраненного значения НЕ УКАЗАНА 2011-03-31 14: 20: 37,507 TRACE [пул-2-нить-3] IdentifierValue: - идентификатор несохраненного значения: 0 2011-03-31 14: 20: 37,507 TRACE[pool-2-thread-3] AbstractSaveEventListener: - временный экземпляр: com.xxx.TimeSeriesEntity 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] DefaultPersistEventListener: - сохранение временного экземпляра 2011-03-31 14: 20: 37,507 DEBUG [pool-2-thread-3] AbstractSaveEventListener: - сгенерированный идентификатор: 188032723, с использованием стратегии: org.hibernate.id.SequenceHiLoGenerator 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] AbstractSaveEventListener: - сохранение [com.xxx.TimeSeriesEntity # 188032723] 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] Управление версиями: - с использованием начальной версии: 0 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] VersionValue: - версия unsСтратегия aved-value НЕ УКАЗАНА 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] IdentifierValue: - id unsaved-value: 0 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] AbstractSaveEventListener: - временный экземпляр: com.xxx.TimeSeriesEntity 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] DefaultPersistEventListener: - сохранение временного экземпляра 2011-03-31 14:20: 37,507 DEBUG [pool-2-thread-3] AbstractSaveEventListener: - сгенерированный идентификатор: 188032724, с использованием стратегии: org.hibernate.id.SequenceHiLoGenerator 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3]AbstractSaveEventListener: - сохранение [com.xxx.TimeSeriesEntity # 188032724] 2011-03-31 14: 20: 37,507 TRACE [pool-2-thread-3] Управление версиями: - с использованием начальной версии: 0 2011-03-31 14:20:37,507 TRACE [пул-2-нить-3] VersionValue: - стратегия несохраненного значения версии НЕ УКАЗАНА 2011-03-31 14: 20: 37,507 TRACE [пул-2-нить-3] IdentifierValue: - идентификатор несохраненного значения: 0
Вот инициализация фабрики сеанса:
2011-03-31 14: 16: 17,521 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] InjectedDataSourceConnectionProvider: - Использование предоставленного источника данных 2011-03-31 14: 16: 17,535 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] НастройкиФабрика: - RDBMS: PostgreSQL, версия:9.0.2 2011-03-31 14: 16: 17 535 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] НастройкиФабрика: - Драйвер JDBC: собственный драйвер PostgreSQL, версия: PostgreSQL 9.0 JDBC4 (сборка 801) 2011-03-31 14: 16: 17 560 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] Dialect: - Использование диалекта: org.hibernate.dialect.PostgreSQLDialect 2011-03-31 14: 16: 17,564 INFO [SpringOsgiExtenderThread-46] TransactionFactoryFactory: - Стратегия транзакции: org.hibernate.transaction.JDBCTransaction.JDBCTransaction31 14: 16: 17 564 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] TransactionManagerLookupFactory: - Не настроено TransactionManagerLookup (в среде JTA использование кэша второго уровня для чтения-записи или транзакции не рекомендуется) 2011-03-31 14: 16: 17 565 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] НастройкиФабрики: - Автоматизацияc сбросить во время beforeCompletion (): отключено 2011-03-31 14: 16: 17,565 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - автоматическое закрытие сеанса в конце транзакции: отключено 2011-03-31 14: 16: 17,565 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - Размер пакета JDBC: 50 2011-03-31 14: 16: 17,565 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Пакетное обновление JDBC для версионных данных: включено 2011-03-31 14: 16: 17 565 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - прокручиваемые наборы результатов: включено 2011-03-31 14: 16: 17,565 DEBUG [SpringOsgiExtenderThread-46] SettingsFactory: - обернуть наборы результатов: отключено 2011-03-31 14: 16: 17,565 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - JDBC3 getGeneratedKeys (): включено 2011-03-31 14: 16: 17 565 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - режим разъединения соединения: авто 2011-03-31 14: 16: 17 566 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46]SettingsFactory: - Размер выборки пакета по умолчанию: 1 2011-03-31 14: 16: 17 566 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Создание SQL с комментариями: отключено 2011-03-31 14: 16: 17 566 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Упорядочить обновления SQL по первичному ключу: включено 2011-03-31 14: 16: 17 566 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Заказать SQL-вставки для пакетирования: включено 2011-03-31 14: 16: 17,566 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Переводчик запросов: org.hibernate.hql.ast.ASTQueryTranslatorFactory 2011-03-31 14: 16: 17,567 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] ASTQueryTranslatorFactory: - Использование ASTQueryTranslatorFactory 2011-03-31 14: 16: 17,567 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - Замена языка запросов: {} 2011-03-31 14: 16:ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - JPA-QL строгое соответствие: включено 2011-03-31 14: 16: 17,567 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Кэш второго уровня: отключено 2011-03-31 14:16:17,567 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] НастройкиФабрика: - Кеш запросов: отключен 2011-03-3114: 16: 17,567 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - Фабрика области кэша: org.hibernate.cache.impl.NoCachingRegionFactory 2011-03-31 14: 16: 17,568 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Оптимизировать кэш для минимумаставит: отключено 2011-03-31 14: 16: 17,568 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - Структурированные записи кэша второго уровня: включено 2011-03-31 14: 16: 17,568 TRACE [SpringOsgiExtenderThread-46] SQLExceptionConverterFactory: - Использованиеопределенный диалект конвертер 2011-03-31 14: 16: 17 570 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - Статистика: отключена 2011-03-31 14: 16: 17 570 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Откат синтетического идентификатора удаленной сущности:отключено 2011-03-31 14: 16: 17 571 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SettingsFactory: - Режим объекта по умолчанию: pojo 2011-03-31 14: 16: 17 571 INFO [SpringOsgiExtenderThread-46] SettingsFactory: - Проверка именованного запроса: включена2011-03-31 14: 16: 17 589 ИНФОРМАЦИЯ [SpringOsgiExtenderThread-46] SessionFactoryImpl: - создание фабрики сеансов 2011-03-31 14: 16: 17 590 DEBUG [SpringOsgiExtenderThread-46] SessionFactoryImpl: - Фабрика сеансов, построенная с конфигурациями фильтров: {}