当前位置: 首页 > 知识库问答 >
问题:

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

皇甫喜
2023-03-14

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

但我的商业逻辑去哪儿了?我必须为每个实体为业务逻辑层编写一个接口和一个类吗?在类中,我只是调用我的DAO/Repository方法?如果是,这两种模式有什么区别?

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

共有1个答案

长孙哲
2023-03-14

项目的体系结构必须按照“低耦合、高内聚”的原则进行组织。

系统各层应该很好地分开。基本体系结构有三层。

  1. 表示层:JSF托管bean位于该层。这一层的任务是对应用户动作,保存用户数据,并将数据展示给用户。基本上,无论您使用哪种实现(JSF、Spring MVC或Struts)
  2. 业务逻辑层:从页面收集的数据和操作被发送到该层,以对数据进行操作。您不应该在表示层内部操作数据和准备响应。这是业务逻辑层的责任。(Spring,CDI)
  3. 集成层:无论使用哪种库技术(Hibernate、JPA、JDBC),都应该在该层中进行数据库访问。

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

您可以下载我的示例应用程序,它基本上实现了这个体系结构。

 类似资料:
  • 我正在阅读JPA 2.1规范,有这个片段: 通过调用新实体实例上的persist方法或级联persist操作,新实体实例将同时成为托管实例和持久实例。应用于实体X的持久化操作的语义如下:。。。 是否可以在不显式调用persist()方法的情况下调用persist操作,或者persist操作始终必须是通过调用persist()的触发器? 假设我有两个实体A和B,其中A与B有一个域(cascade=P

  • 我试图集成Spring和JSF,我坚持使用对象。我不想处理事务(begin-commit等) 经过一些谷歌,我可以找到一个答案,给我需要在这个链接 我使用eclipselink作为ORM和Oracle 11g数据库,并使用带有Maven的Glassfish Server3.1。我更喜欢Spring配置的注释。我用 相关类中的注释。我的名称是E_DefterManagementPU,我的事务类型是J

  • 警告:容器被设计为无状态的实例,任何需要持久化的数据,请采用数据库或文件系统保存在容器实例之外,我们不对保存在容器内的数据提供任何保障。当 DaoCloud 需要迁移,或用户扩容容器资源时,容器内的数据将会遗失,并且无法找回。 使用数据库服务 DaoCloud 在服务集成模块中提供了 MySQL、Redis、MongoDB、InfluxDB 等数据服务,如您需要做内容的持久化保存,可以选择使用 M

  • 本文向大家介绍vuex实现数据状态持久化,包括了vuex实现数据状态持久化的使用技巧和注意事项,需要的朋友参考一下 用过vuex的肯定会有这样一个痛点,就是刷新以后vuex里面存储的state就会被浏览器释放掉,因为我们的state都是存储在内存中的。 所以我们通过 vuex-persistedstate这个插件,来实现将数据存储到本地 用法很简单 1、 2、 以上这篇vuex实现数据状态持久化就

  • 本文向大家介绍C#利用服务器实现客户端之间通信,包括了C#利用服务器实现客户端之间通信的使用技巧和注意事项,需要的朋友参考一下 先来讲述下我自己对于整个Socket通信过程的理解,毕竟初学,说错见谅,知道错了会改正~  首先在服务端新建一个serverSocket,对其进行初始化(一般包含AddressFamily:IP地址类型,SocketType:Socket传输数据方式,ProtoType:

  • 问题内容: 我正在开发Java桌面应用程序,并且对使用JavaFX非常感兴趣。我计划使用MVC架构,因为我对Java EE和MVC模型有一定的经验。 我想将数据存储在嵌入式derby数据库中,并使用Hibernate作为持久层,但是找不到关于使用hibernate和JavaFX实现MVC的出色教程。 我已经创建了持久性文件,但不确定如何使其与JavaFX一起使用。在Java EE中,我注入了EJB