JSF支持bean和hibernate实体同一个类?

时间:2010-11-13 15:47:43

标签: hibernate jsf

我可以为JSF支持bean和hibernate实体使用相同的类吗?我假设我可以但是当我在辅助bean上进行一些JSF验证时,字段没有设置(即为null)。

我是否缺少让这两种技术很好地融合在一起的东西?或者根本不是同时使用同一个类的做法?

感谢您的帮助。

6 个答案:

答案 0 :(得分:2)

我在技术上不确定,但逻辑上没有多大意义。当您的JSF支持bean与用户会话关联时,您的休眠bean与数据库记录相关联。我认为尝试将两者混合在同一个班级中只会造成混乱。

答案 1 :(得分:0)

据我所知,你可以将一个类用于两个目的,但我不确定,原因是因为我个人从不使用它,因为它是错误的编码实践。首先,作为JOTN提到的实体类反映了您的数据库,并且支持bean与视图相关联。其次,对我而言,这是最重要的原因,实体类和支持bean中的字段不必相同!如果您想在支持bean中使用密码和“重新输入密码”字段,并且只需要实体类中的一个字段,该怎么办?

答案 2 :(得分:0)

在大多数情况下使用相同的类。像richfaces这样的框架甚至为基于类javax.validation注释的ajax验证提供支持。

在大多数情况下,这将是一种安全且易于维护的方法。

在极少数情况下,您可以为视图创建一个特殊对象,但这并不常见。

虽然分离似乎是一个好主意,但实际上你通常最终会得到许多相同的类 - 这是过度设计的标志。

如果您的会话和事务管理定义明确,那么您应该没有任何问题。

答案 3 :(得分:0)

这是可能的,但最好让框架为您完成集成工作。使用JBoss Seam,它可以满足您的需求,甚至更多。

答案 4 :(得分:0)

答案 5 :(得分:0)

这个帖子已经老了,但话题仍然很热门。使用JSF和hibernate处理大型Web应用程序时,我会支持Bozho并说如果可以的话,最好只使用一组类。

虽然会话和事务管理服务设置起来有点棘手;你最终会得到一个架构:

  • 表现更好。 DTO和实体之间的映射可能是资源扩展的,特别是如果您使用依赖于像dozer这样的反射的第三方库。 hibernate还有一个非常有效的缓存系统,如果你系统地映射你的实体的父母/孩子,你就会失去它。
  • 更可维护。一组类比2更容易管理,再加上hibernate注释,你可以轻松地告诉哪些字段是hibernate管理的,哪些不是
  • 更好地扩展。 (绩效+可维护性)