JDBC / Hibernate для преобразования пакетов в операторы с несколькими вставками - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу сохранить / обновить список объектов таким образом, чтобы в базе данных было максимально 4 SQL-операции / запроса .

2 вставить запрос на новые записи для двух разных таблиц.

2 запрос на обновление записей об обновлении двух разных таблиц.

Возможно ли это в Hibernate для HSQL, MSQL, Oracle, MYSQL

Обыскав это, я обнаружил следующее решение для вставки с MySQL.


Установить следующее свойство для конфигурации фабрики сеанса гибернации.

hibernate.jdbc.batch_size

И используйте следующий URL для подключения

jdbc\:mysql\://localhost\:3306/opshub?rewriteBatchedStatements=true

Генерирует одиночный запрос вставки

insert into test values (1,"abc"),(2,"xyz");

Требуется это для HSQL, MSSQL, ORACLE

У меня есть Java-объект, представляющий таблицы, как показано ниже.

class UserDetails{

int id;
String userName;

OneToMany
List<UserAssociation> association;

}

class UserAssociation{

ManyToOne
UserDetails user;
int systemId;
int lastSeenTime;

}

У меня будут следующие записи для вставки / обновления

 List<UserDetails> inserts (with List<UserAssociation> association);
 List<UserAssociation> inserts and update for UserDetails

 List<UserDetails> updates
 List<UserAssociation> updats

Требование состоит в том, что эти данные в БД должны быть не более 4 запросов с Hibernate и всеми серверами БД, такими как SQL-SERVER, MySQL, ORACLE, HSQL

...