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

JPA/Hibernate是否可以与jOOQ等其他持久性框架相结合

闻人飞翼
2023-03-14

然而,域的其余部分是具有挑战性的,出于许多原因,我不想直接将其映射到DB表。

我尝试引入由Hibernate管理的中间bean,并从这些bean映射到我的域,当所有的关系都是从挑战到容易的部分时,这很好地工作。当Hibernate管理的“Easy”类引用映射在自定义Java代码中的“挑战性”类,而不是直接Hibernate管理时,这种方法就失败了。

这时我意识到,我找不到自定义Hibernate和插入某种ObjectFactory的方法,这样我就可以动态地进行这样的转换。

--编辑--

我的问题是什么:在使用JPA的同时,拥有DDD风格的领域层(在实体中没有DB问题)的最简单方法是什么?在html" target="_blank">DDD中,所有DB关注点都由存储库处理,存储库通常与DAO协作。

我希望使用类似JPA的“懒惰”的东西来处理琐碎的实体,并且能够将它们与“手动”管理的其他实体混合使用。目前,我不知道聪明的解决方案,允许我有链接从JPA托管实体到非JPA托管实体。我总是可以检索JPA实体,然后通过第二次调用检索非JPA实体,但如果可能的话,我希望避免这样做。

共有1个答案

仇正豪
2023-03-14

您可以组合使用JPA和JOOQ。JPA/Hibernate非常适合写入数据:

  • 所有实体列都包含在插入/更新中,因此添加新列时不必更改保存例程
  • 广泛支持隐式/显式乐观/悲观锁定
  • 支持优化的标识符生成器(pooled-lo优化器)
  • 减少锁争用的事务性写后缓存(即使在MVCC DBs中也是如此)
  • 只需要一个配置就可以获取JDBC

SQL和jOOQ非常适合于读取数据,特别是当您想要超越SQL-92 JPA方言抽象时。通过本机查询(和类型安全的jOOQ),您可以利用数据库提供的每个特性:

    null
 类似资料:
  • 我正在实施一个项目与rest web service和mongoDB,我将是有用的使用JPA数据库操作。当然,我需要使用Hibernate?,这将是其他一些较轻的框架的最佳选择。数据库是小的几个实体,但许多记录,如果可能的话还会插入图像,如果OpenShift允许的话。在这种情况下,最好用作框架持久性?

  • 将SQL插入/更新表达式嵌入到刷新中 此功能允许将数据库列的值设置为SQL表达式,而不是文字值。它对于原子更新、调用存储过程等特别有用。您所要做的就是为属性分配一个表达式:: class SomeClass(Base): __tablename__ = "some_table" # ... value = Column(Integer) someobject = se

  • 首先要明确一点的是,没有最好,只有最合适。前端框架并不是所谓 注:本文一些数据收集时间为16-12-31 因为大部分教程都是付费的,所以教程数量的多少在侧面反映了框架的市场需求,如果框架冷门用的人不多,那必然不会有人去为其开发教程。

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

  • 使用GatewayWorker时开发者最关心的是如何与现有mvc框架(ThinkPHP Yii laravel等)整合,以下是官方推荐的整合方式。见示意图: 总体原则: 现有mvc框架项目与GatewayWorker独立部署互不干扰 所有的业务逻辑都由网站页面post/get到mvc框架中完成 GatewayWorker不接受客户端发来的数据,即GatewayWorker不处理任何业务逻辑,Gat

  • 问题内容: 我在将Macruby与ActiveRecord(w /sqlite3)或Sequel一起使用时遇到了问题。还有其他建议吗?我需要一个简单的轻量级持久性机制来嵌入我的应用程序,该机制可以处理少于5个表,最多只能处理几万行。 问题答案: 以下组合有效: 诀窍是卸载“ sqlite3” gem和安装“ sqlite3-ruby”。