Spring是否允许您在同一控制器update()
方法中更新数据并将数据保存到两个单独的Oracle表中?或者,您是否必须使用两个单独的控制器才能执行此操作?
我有一个控制器,需要更新并将数据保存到同一个控制器update()
方法中的两个单独的表中。例如:
model = widgetDAO.update(model);
widgetHistoryDAO.save(model2);
第一个更新语句的模型位于控制器的表单对象上。
第二个更新语句的模型model2
只是一个历史记录,因此它不会返回给控制器的调用者,因为数据不存储在表单对象屏幕上。
当我这样做时,我尝试在控制器的开头通过一个新语句创建model2
:
WidgetHistory model2 = new WidgetHistory();
我可以毫无问题地调用update和save语句一次,但是当我第二次调用update和save语句时,
widgetHistoryDAO.save(model2);
语句导致运行时错误:
Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist:......
有人看到过这样的错误吗?
感谢您提供有关如何最有效地保存/更新同一控制器中不在同一表单对象中的多个表的建议(即用户可以添加,更新,查询的同一屏幕上的屏幕变量)。 / p>
答案 0 :(得分:0)
我将新语句从控制器的开头移动到持有更新和保存调用的方法。没有发生运行时错误。我也做了研究,并没有发现任何禁止将新语句与Spring结合使用的内容,尽管使用Spring的一个目的是避免尽可能多地调用new!