Поскольку sportsValues
является массивом объектов, вы можете вставить в него новый объект. Проверьте код ниже.
const sportsValues = [];
sportsValues.push({
playerName:'3',
playerHeight: 1,
});
console.log(sportsValues);
Мы наконец определили, что решение заключалось в том, чтобы обернуть его в транзакцию readOnly.
Мне не ясно, почему мы вообще не использовали сеттеры (просто читая данные) - ничего менялся в базе данных. Но по какой-то причине Hibernate пытался перезаписать те же данные обратно и вызывал блокировку, когда другой процесс пытался прочитать эти записи.
Использование транзакции readOnly привело к исчезновению проблемы!
<bean id="txWrappedOrderDataService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"/>
<property name="target" ref="orderDataService"/>
<property name="transactionAttributes">
<props>
<!-- all methods require a transaction -->
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
Ненамеренные обновления могли бы произойти с, в спящем режиме, когда Вы используете методы set, которые управляют значением, которое они на самом деле устанавливают. Примером был бы метод set для Строкового атрибута, который заменяет значение пустого указателя с "". Вероятный кандидат является также наборами. Удостоверьтесь, что методы set не заменяют содержавший набор. Если Вы замените набор объекта с другим набором, содержащим то же содержание, будете в спящем режиме, то не сможет понять, что и обновляют полный набор.
Вы проверили на какие-либо триггеры в базе данных? Вы уверены, что это, в спящем режиме и не некоторый другой процесс, обновляющий те те же строки? Возможно, существует столбец, хранящий метку времени последнего чтения, и это обновляется каждый раз, когда строка читается (Хотя я не могу помнить первое, что пришло на ум, что Вы могли сделать ИЗБРАННЫЕ триггеры)...
Дженс прав
Чтобы добавить, вам нужно внимательно осмотреть ваши сеттеры и геттеры и посмотреть, возвращаются ли они. другое значение на разных звонках например, new Date () - это будет возвращать новое значение - каждый раз, когда оно вызывается, и заставит hibernate думать, что объект изменился