首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在生产环境中动态更改JPA2.0SQL/JPQL查询

问如何在生产环境中动态更改JPA2.0SQL/JPQL查询
EN

Stack Overflow用户
提问于 2010-09-08 17:29:19
回答 2查看 1.3K关注 0票数 0

我对JPA2.0/ORM的体系结构有一个问题,在我们的生产系统中(我相信在很多系统中),我们需要动态更改SQL查询的能力,因为缓慢的查询和只在生产中暴露的查询中的错误(重负载和重数据),导致我们在存储过程中使用并从iBatis调用它们。

根据我所看到的模式,最佳实践是将DB层和应用程序层分开,这样我就可以告诉我的DBA在生产环境中修复有buggy的存储过程/索引表,而无需部署新的应用程序(分配整个系统的部署时间)。

在ORM/JPA 2.0中,代码中定义的命名查询导致程序员在开发/QA过程中捕获整个数据库问题-非常糟糕!

我在API中看到,框架提供了定义原生查询的选项-但在书籍/教程中,最佳实践是使用命名查询……

在我阅读了Hibernate/JPA 2.0规范以了解是否有解决此问题的方案后,我了解到没有解决方案...?

在我看来,我需要在应用程序代码层中定义硬编码的查询……另外,在XML描述符中定义查询,并通过热部署的补丁解决方案加载XML -非常糟糕,而且不是标准的!

您是否有设计模式/解决方案

谢谢大家!

Uri。

EN

回答 2

Stack Overflow用户

发布于 2010-09-08 17:34:46

我建议您在部署之前进行单元和性能测试。你不应该在这么晚的时候发现out或慢查询。

正如你所发现的,JPA/ORM不像iBatis。

"Buggy“听起来像是缺乏彻底的单元测试。

“慢”听起来像是您的DBA没有检查JPA生成的SQL。解释所有这些的计划。您可能会在数据库端遇到任何使用JPA都无法修复的索引或模式问题。

模式不是解决方案。

票数 4
EN

Stack Overflow用户

发布于 2010-09-14 06:26:22

您应该能够让您的实体从视图和表中读取数据。然后,可以动态地修改视图的sql。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3666316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档