我正在使用Hibernate和JSF开发一个项目。我的问题是:
我可以直接从我的支持bean操作Hibernate POJO吗?即在我的表格中,我可以参考#{mybackingBean.myPOJO.propertyName}
吗?
从myBackingBean
开始,我可以调用findAll()
,save()
,findById(id)
等方法吗?
这是好设计还是存在任何并发症请咨询我。
答案 0 :(得分:3)
我可以直接从我的支持bean操作Hibernate POJO吗?
是的,你可以这样做。
我可以调用findAll(),save(),findById(id)等方法
是的,你可以这样做。但是我期望在服务/ DAO类中看到这些方法,而不是在POJO中。
这是一个好的设计还是存在任何并发症
取决于功能/业务要求。如果您需要根据数据模型设计JSF视图,那么您通常可以按原样使用POJO。但是,如果您需要根据业务模型设计JSF视图,而该业务模型不一定与数据模型一对一,或者您希望完全抽象数据层(即Hibernate仅仅是一个“实现细节”)并且应该可以与Plain JDBC或现代JPA交换,那么你经常需要引入一个带有DTO的额外抽象层,这些层从/向POJO映射,然后只在JSF端使用那些DTO。无论如何,你不应该在JSF支持bean中爆炸POJO / DTO,而只是将整个实体作为它的属性并将其用作#{bean.entity.property}
。