gpt4 book ai didi

java - 如何在 Spring/Hibernate 事务中包装 Wicket 页面渲染?

转载 作者:行者123 更新时间:2023-12-01 17:36:07 25 4
gpt4 key购买 nike

我的应用程序从 Hibernate DAO 加载实体,并使用 OpenSessionInViewFilter 来允许渲染。

在某些情况下,我想对字段进行细微更改 -

Long orderId ...

link = new Link("cancel") {
@Override public void onClick() {
Order order = orderDAO.load(orderId);
order.setCancelledTime(timeSource.getCurrentTime());
};

但是这样的更改不会持久,因为 OSIV 不会刷新。

在这些情况下必须调用 orderDOA.save(order) 似乎很遗憾,但我不想更改 OSIV 上的 FlushMode。

有没有人找到任何方法将“请求处理”(例如 onClick)声明为需要事务?

理想情况下,我认为事务将在请求周期的早期启动,并由 OSIV 提交,以便所有逻辑和渲染都将在同一事务中进行。

最佳答案

我通常更喜欢使用包装基本 DAO 的附加“服务”代码层逻辑并通过@Transactional 提供事务。这使我可以更好地分离表示与业务逻辑,并且更容易测试。

但是由于您已经使用了 OSIV,您可能可以在代码中放置一些 AOP 拦截器并让它执行flush()?

关于java - 如何在 Spring/Hibernate 事务中包装 Wicket 页面渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6140388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com