gpt4 book ai didi

hibernate - 如何在基于 Wicket、Spring、Hibernate 的 Web 应用程序中正确使用 LoadableDetachableModel?

转载 作者:行者123 更新时间:2023-12-01 04:09:42 25 4
gpt4 key购买 nike

我正在开发一个基于 Hibernate、Spring 和 Wicket 的 Web 应用程序。

到目前为止,我实现了业务对象和持久层。事务由 Spring 框架的事务拦截器管理。所以DAO类的每个方法都封装在一个事务中。与单元测试一起实现这一点是直截了当的。

现在我来到 Web 应用程序部分,我也使用 Spring 进行依赖注入(inject)。连同 Wicket 框架的 @SpringBean 注释,我将 DAO 注入(inject)到 Wicket 组件中。但是由于我对 Wicket 还很陌生,所以在将正确的模型用于我的业务对象时,当我将它们传递给 Wicket 组件时,我有点卡住了。

我尝试了 LoadableDetachableModel 但遇到了一些问题。根据页面的输入参数,我得到一个页面来创建新的或编辑现有的业务对象。如果参数中有 id,则应从数据库中加载相应的业务对象。当没有参数时,应该创建一个新的业务对象。这部分是一个应该编辑的对象运行得很好,但是当应该创建一个新对象时,我填写了 Web 表单并按保存,我得到一个 NullPointerException。经过一些调试后,我发现 LoadableDetachableModel 无法返回业务对象的实例,因为重写的 load() 方法无法从数据库加载对象,因为它还没有保存在那里,因此没有 id。

所以现在我想知道如何解决这个问题。 LoadableDetachableModel 是正确的选择吗?是否建议将表单分成两个相互依赖的表单,每个表单使用不同的模型。那么只有编辑页面/表单使用LoadableDetachableModel?

最佳答案

Igor Vaynberg 在 the Wicket In Action blog 上对此和一些相关问题有很好的解释。 .

该页面的最后一点处理这个问题,基本上不使用LoadableDetachableModel。但实现 AbstractEntityModel ,这允许更完整的控制。

关于hibernate - 如何在基于 Wicket、Spring、Hibernate 的 Web 应用程序中正确使用 LoadableDetachableModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7031596/

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