Одна вещь, которая произошла в моей компании, приходит на ум. Вы могли видеть, загружает ли объект также загрузку некоторого объекта serialized
, который будет десериализоваться каждый раз, когда объект загружается. Кроме того, при фиксации транзакции Hibernate может сделать flush()
для вас (настраивается). Если он сбрасывается, чтобы сохранить постоянство, он выполнит сравнение прав доступа и базы данных. В этом случае выполняется сравнение объекта serialized
, что занимает много времени.
Еще одна вещь, которую вы можете сделать, это проверить, нет ли у вас ненужного каскадирования персистентности, то есть @Cascade({CascadeType.PERSIST, CascadeType.SAVE_UPDATE})
аннотации к столбцам.
Еще одна вещь, которую вы можете сделать, которая не специально связана с hibernate, заключается в том, что вы создаете view
s для выполнения одного запроса, вместо того, чтобы выполнять множество запросов к разным таблицам. Это имело огромное значение для нас в определенной функции.