В моей реализации JPA я делаю em.find(), чтобы выбрать список объектов и изменить эти объекты. Далее я обновляю эти измененные объекты, вызывающие em.merge() внутри транзакции (TX чтобы сохранить другие связанные вещи).Стратегия поиска и обновления JPA
Это отлично работает, за исключением того, что SELECT происходит дважды (один раз во время поиска и других во время другого), который, как я считаю, является избыточным и работоспособным в моем случае.
Я бы с неохотой привел find() в пределах границы транзакции em.merge(), даже если это решит последний SELECT.
Определяет мой собственный NamedQuery единственный способ обновить эти объекты, не выдавая другой SELECT?
Благодаря
Можете ли вы указать, где происходит второй SELECT? – perissf
Почему вы неохотно приносите вызов find() в свой tran? Какой провайдер вы используете? – Rick
@Rick Select занимает несколько минут для выполнения (из-за запроса без индексирования столбцов). Дополнительное время для выбора времени выполнения транзакции (ограничение JBOSS составляет 5 мин). Я мог бы увеличить время, но сохраняя это как последний параметр resport. – phewataal