Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Hibernate/JPA实现Java服务器中的数据持久化_Java_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

用Hibernate/JPA实现Java服务器中的数据持久化

用Hibernate/JPA实现Java服务器中的数据持久化,java,hibernate,jpa,spring-data-jpa,Java,Hibernate,Jpa,Spring Data Jpa,我计划用Java服务器面构建一个web应用程序,但我不确定如何处理实体的持久性。对于php项目,我使用的是Symfony框架和条令2。我主要在控制器中调用实体管理器的persist方法。因此,业务逻辑没有单独的类。我试过Hibernate,我认为这是一个很好的替代品 java项目是针对大学的,我想将业务逻辑从控制器/bean转移到用于业务逻辑的类 我阅读了有关数据访问对象和存储库模式()的文章和教程 在数据访问对象模式中,我有一个类用于实体,一个接口和一个类用于DAO对象/实体,在存储库模式中,

我计划用Java服务器面构建一个web应用程序,但我不确定如何处理实体的持久性。对于php项目,我使用的是Symfony框架和条令2。我主要在控制器中调用实体管理器的persist方法。因此,业务逻辑没有单独的类。我试过Hibernate,我认为这是一个很好的替代品

java项目是针对大学的,我想将业务逻辑从控制器/bean转移到用于业务逻辑的类

我阅读了有关数据访问对象和存储库模式()的文章和教程

在数据访问对象模式中,我有一个类用于实体,一个接口和一个类用于DAO对象/实体,在存储库模式中,我有一个类用于实体,一个类用于代表

但我的商业逻辑在哪里?我是否必须为业务逻辑层和仅调用dao/repository方法的类中的每个实体编写接口和类?如果是,两种模式之间的区别是什么


如果我完全错了:Java Server Faces的数据持久性(使用Hibernate/JPA)的(行业)标准是什么?

项目的体系结构必须根据“低耦合和高内聚”的原则进行良好组织

系统各层应充分分开。基本架构有3层

  • 表示层:JSF托管bean位于该层。该层的任务是协调用户操作、保存用户数据并向用户显示数据。基本上,无论您使用哪种实现(JSF、SpringMVC或Struts),它的职责都受到MVC模式的限制
  • 总线逻辑层:从页面收集的数据和操作被发送到该层以对数据进行操作。您不应该在表示层中操纵数据并准备响应。这是业务逻辑层的责任。(Spring,CDI)
  • 集成层:无论使用何种库技术(Hibernate、JPA、JDBC),都应该在该层中进行数据库访问
  • 如图所示。您的JSF托管bean应该只能处理来自页面(控制器)和页面数据(模型)的请求。您可以查看一下以了解JSF MVC。因此,最好不要在JSF托管bean中连接DB。这不是一个好的做法

    问题的第二部分。所有技术,Hibernate、JPA、SpringJDBC,都使用相关数据库的JDBC驱动程序。JDBC驱动程序正是连接数据库的工具。但是,最好选择一种方法来连接DB、Hibernate、JPA或SpringJDBC

    您可以下载基本上实现此体系结构的