[英]Data persistence in Java Server Faces with Hibernate/JPA
我打算用Java Server Faces构建一个Web应用程序,但是我不确定如何处理实体的持久性。 对于php项目,我将Symfony框架与Doctrine 2结合使用。我主要在控制器中调用实体管理器的persist方法。 因此,没有单独的业务逻辑类。 我尝试了Hibernate,我认为这是Doctrine的很好替代。 ;)
Java项目是针对大学的,我想将业务逻辑从控制器/ bean转移到业务逻辑的类。
我阅读了有关数据访问对象和存储库模式的文章和教程( http://docs.spring.io/spring-data/jpa/docs/1.3.0.RELEASE/reference/html/jpa.repositories.html )。
在数据访问对象模式中,我为我的实体有一个类,为我的DAO对象/实体有一个接口,为我的DAO对象/实体类,在存储库模式中,我有一个为我的实体的类和一个代表类。
但是我的业务逻辑在哪里? 我是否需要为业务逻辑层的每个实体编写一个接口和一个类,并且在这些类内部(我只是简单地调用dao / repository方法)? 如果是这样,两种模式之间有什么区别?
如果我完全错:Java Server Faces的数据持久性(使用Hibernate / JPA)的(行业)标准是什么?
该项目的架构必须按照“低耦合和高凝聚力”原则进行良好的组织
系统层应该很好地分开。 基本架构分为3层。
如您在图片中所见。 您的JSF托管Bean应该只能从页面(控制器)和页面数据(模型)发出请求。 您可以查看此答案以了解JSF MVC。 因此,最好不要在JSF受管bean中连接数据库。 这不是一个好习惯。
问题的第二部分。 Hibernate,JPA,Spring JDBC等所有技术都使用相关数据库的JDBC驱动程序。 JDBC驱动程序是连接到数据库的唯一工具。 但是,最好选择一种方法连接到DB,Hibernate,JPA或Spring JDBC。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.