POJO或DTO方法

时间:2011-11-03 09:24:13

标签: java hibernate architecture dto pojo

我正在开发一个以Struts2,Spring和Hibernate为核心构建块的新Web应用程序。

我们已经针对hibernate映射文件创建了POJO类。来自用户的一些输入需要更新到底层数据库

例如注册或更新。

我们几乎没有选择为动作类创建新的POJO / DTO,这些动作类将由Struts2填充,而不是我们可以将它们转移到服务层,我们可以将这些DTO转换为受尊重的hibernate POJO,否则我们可以暴露相同的POJO struts2,以便框架可以用用户输入填充它们,我们不需要进行转换工作和创建额外的类集。

应用程序的大小不会很大,而且应用程序标签中等。

我的问题是将此用户输入传输到底层hibernate层以执行特定数据库工作的最佳方法是什么。

提前致谢

2 个答案:

答案 0 :(得分:4)

在这种情况下我更喜欢“DTO”方法,因为您可以先验证输入并仅在需要时触发更新。

但是,您可以将分离的实体用作DTO,并在想要创建或更新它们时重新附加它们。如果您不希望应用程序的Web部分依赖于Hibernate和/或JPA,则可能需要创建另一组类(除非您不使用单个注释)。

答案 1 :(得分:0)

你会得到两个答案。

使用Struts 2,我倾向于使用普通的S2动作属性来收集表单值/等。并使用BeanUtils将它们复制到Hibernate对象。将Hibernate对象暴露给表单的问题与ModelDriven等一样,如果您的列应该由用户直接设置,则需要定义白名单/黑名单。 (或以不同的方式处理问题。)

那就是说,我不是从根本上反对像许多人那样的想法,而且他们可以说是正确的。