Написать INNER JOIN в LINQ

Вероятно, ваши запросы переписываются, но вы не знаете, просматриваете ли журналы Hibernate SQL. Hibernate не переписывает инструкции вставки - драйвер MySQL переписывает их. Другими словами, Hibernate отправит несколько драйверов insert в драйвер, а затем драйвер перепишет их. Таким образом, журналы Hibernate отображают только то, что SQL Hibernate отправлено в драйвер, а не то, что SQL-драйвер отправил в базу данных.

Вы можете проверить это, включив параметр profileSQL MySQL в URL-адрес соединения:

<b:property name="jdbcUrl" value="jdbc:mysql://server:3306/db?autoReconnect=true&amp;rewriteBatchedStatements=true&amp;profileSQL=true" />

Используя пример, аналогичный вашему, это выглядит так:

insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
insert into Person (firstName, lastName, id) values (?, ?, ?)
Wed Feb 05 13:29:52 MST 2014 INFO: Profiler Event: [QUERY]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) duration: 1 ms, connection-id: 81, statement-id: 33, resultset-id: 0, message: insert into Person (firstName, lastName, id) values ('person1', 'Name', 1),('person2', 'Name', 2),('person3', 'Name', 3),('person4', 'Name', 4),('person5', 'Name', 5),('person6', 'Name', 6),('person7', 'Name', 7),('person8', 'Name', 8),('person9', 'Name', 9),('person10', 'Name', 10)

Первые 10 строк записываются в Hibernate, хотя это не то, что фактически отправляется в базу данных MySQL , Последняя строка исходит из драйвера MySQL, и на нем явно отображается одна вставка пакета с несколькими значениями, и это то, что фактически отправляется в базу данных MySQL.

-8
задан cf_en 10 October 2017 в 16:37
поделиться