我正在寻找处理java web应用程序中对象创建和更新的“正确”方法。
假设我拥有3个级别的架构: Web UI ,域和数据库。
我还有一个类WebPage
(标题,描述,网址),带有hibernate映射。
显然,我需要至少在数据库级别使用WebPage
,并且很可能也在域级别使用__WebUI__ -> createWebsite(title, description, url) __Domain__
and domain creates the objects and passes it to the **Database** level.
。
但是我应该在什么级别创建对象?
我看到两个选项:
__WebUI__[_creates the website_] -> saveWebsite(website) __Domain__
__WebUI__ -> updateTitle(title) __Domain__
__WebUI__ -> updateDescription(desc) __Domain__
__WebUI__ -> updateUrl(url) __Domain__
和域将其传递到数据库级别。
第一个显然是最合理的。
如果我需要更新网站的信息怎么办?
{{1}}
WebUI 将对象的更新版本发送到域级别。
是否有特定的模式可供使用?
答案 0 :(得分:0)
听起来像WebPage一般不是域名对象的好名字,可能你应该重新考虑是否要在用户输入的网络层数据与存储在网络层中的数据之间存在这种紧密耦合。数据库中。
大多数JEE或相关的前端框架(如Spring MVC或Wicket或JSF)接受/显示用脚本语言(如JSP)呈现的用户数据,并将它们绑定到由POJO表示的bean(有时带注释)。这些POJO可能不适合用作Hibernate映射对象,因为当用户可能处于耗时的活动时,您不希望附加到Hibernate会话的entites。因此,前端POJO通常与Hibernate会话分离,并且您的数据库映射层必须使用Hibernate与您的表进行映射。请参阅JBoss doc中的章节。 here