如何在现有项目中使用JPA?

时间:2014-03-13 00:14:38

标签: java hibernate jpa

我的团队正在开发中型应用程序(OLTP样式)。我们感兴趣的是切换到JPA而不是仅使用JDBC查询。主要是出于性能和实际原因。我不是在寻找一个向我展示如何在Eclipse中创建persistence.xml或Entity类的教程。我想知道的是将所有数据库查询转换为JPA格式的步骤。我知道整个应用程序必须使用JPA。

多年来,许多程序员都参与了这个项目,所以不是每个人都拥有相同的SQL知识或相同的编程技能。所以在这个应用程序中必须有1000多个海关查询,使用多个表(原生JPA不支持的东西),或者只选择表中的几个字段的查询...这有点失控我认为JPA会创建一个很好的工具箱,以确保每个人都朝着同一个方向发展。

我应该寻找什么来确保我不会进入一个永远不会结束的过程(转换)?某种指导方针。

(同样,我不是在寻找编程示例,也不是Eclipse教程。)

谢谢!

1 个答案:

答案 0 :(得分:1)

第一步是使用JPA将数据库模式转换为数据库模型,您需要清楚在现有应用程序中使用的表,序列,数据库对象是什么,并开始使用JPA建模所有模式,您应该考虑使用JPA注释。

上面的步骤将确定您的实体,嵌入式和映射的超类,它们的属性以及它们之间的关系,这一步非常关键,因为您的逻辑将取决于此模型的正确性。

然后开始查找项目中涉及的所有查询,因为您说有1000多个查询考虑使用两个方案,在JPQL查询中转换所有查询或在本机查询和命名查询之间使用混合,I真的更喜欢在JPQL中转换所有内容,除非它们非常依赖数据库。你必须遵循的一步是找到所有这些,可能是一些现有的工具,从SQL转换为JPQL,但我相信你自己做的更好。

一旦你有数据库的查询和模型开始使用JPA和EntityManager创建新的DAO,我应该建议为你现有的DAO提取接口并开始使用相同的接口转移到JPA实现,这将避免自己打破一些代码,不要忘记新DAO的单元和IT测试。

使用上述方法,您可以开始按模块移动应用程序模块,DAO或DAO不需要立即移动完整的应用程序。这将为您提供一种过程,在每个完成新的DAO或模块时,您将看到一些进度。

不确定您对编程示例的意思,我认为这些是必需的步骤,但每个项目彼此不同,因此请将其视为某种指导原则。