Это не ответ:
Поскольку вопрос очень сложен для понимания, я попытался перефразировать его, не могу отредактировать вопрос, не понимая его.
У меня есть объект скажем User
для сохранения в базе данных. В моем методе SampleBean.add
я извлекаю идентификатор, получая следующее значение некоторой последовательности, скажем userSequence
.
То же значение (извлечено из userSequence
установлено как идентификатор объекта пользователя.
Теперь, сохраняя объект, я не получаю значение id, которое я уже установил в методе SampleBean.add
.
Для настойчивости я использую PreparedStatement
. Можете ли вы помочь мне понять, почему это происходит?
Эта часть является ответом
Вы выполняете RemoteLookup, и в Java объекты Remote не отправляются с заданной копией, вместо этого она сериализует ее и отправляет, если вы хотите увидеть изменения, внесенные в ваш объект в сервисе удаления, вам придется отправить свой объект обратно
Таким образом, требуется изменить код:
Измените ваш insertLogRow
метод и сделайте так, чтобы он возвращал объект, который он сохранил как:
public LogRow insertLogRow(LogRow logRow) {
//Do all database operation
return logRow;
}
Теперь измените код звонящего:
logRow = RemoteLookup.getSampleBean().insertLogRow(logRow);
log.println("log id " + logRow.logId());
Перестройка, развертывание и запуск.
Теперь вы должны увидеть свой идентификатор, который был установлен для объекта внутри метода insertLogRow.