在 J2EE 中外部化查询的推荐实践(特定接缝)

Posted

技术标签:

【中文标题】在 J2EE 中外部化查询的推荐实践(特定接缝)【英文标题】:Recommended Practise to Externalize Queries in J2EE (Specific Seam) 【发布时间】:2009-10-04 14:08:04 【问题描述】:

对于应用程序的统计信息部分,有几个查询经常更改并且相当长。恕我直言,这两个参数都用于从源代码中删除查询并将它们放在可以以眼睛友好的格式轻松编辑的地方,并且还可以从 QL 编辑器复制/粘贴到 QL 编辑器。这会取消来自 JPA 的命名查询的资格。

环境是一个 Seam 应用程序,但这个问题对于 J2EE 来说可能很有趣。

在我看来,有三种解决方案:对于相对静态查询,我可以使用 Seam 托管查询主页,但是当您的参数不在任何范围内并且只是作为方法参数传递时,它对参数化查询的处理会变得很难看。

我目前的解决方案是将所有查询放入 Seam 消息文件并通过消息数组访问它们。

第三种方法是创建您自己的 Seam 组件,该组件从某处读取查询并提供它们。

您是如何处理这种情况的?我错过了一些明显的解决方案吗?

【问题讨论】:

【参考方案1】:

今天出现similar but not Seam specyfic question in SO,说不定你会发现一些想法。

【讨论】:

我最终使用了与引用问题中提出的相同的解决方案,稍作修改:在单个文件中制定 sql 查询,使用 maven 任务将文件合并到属性文件,通过缝组件使用文件.【参考方案2】:

You can put queries in components.xml

【讨论】:

感谢您的回复,这是我描述的第一种方法,如上所述,恕我直言,它具有无范围参数化(或缺乏参数化)的缺点。 您也可以使用 groovy 及其多行字符串(您可以制作 groovy 接缝组件)。在这种情况下,每种解决方案都有其缺点。 我一直将我的查询放在 components.xml 中。我将我的组件按项目分开,所以如果我只在某个层的特定项目中使用查询,我会在那里声明它。提交了一个 JIRA 问题以将它们外部化到 XML 之外,可能在实体类、服务类或使用它的其他特定位置中。它与@NamedQuery(name = "", query = "") ... 类型语法非常相似。

以上是关于在 J2EE 中外部化查询的推荐实践(特定接缝)的主要内容,如果未能解决你的问题,请参考以下文章

滚动背景图像,不能隐藏接缝,c ++ raylib

微软开源项目提供企业级可扩展推荐系统最新实践指南

Atitit 数据库view视图使用推荐规范与最佳实践与方法

读书笔记-单元测试艺术-使用桩对象解除依赖

Python编程入门到实践 - 笔记( 8 章)

头歌(Educoder)实践教学平台——Hive综合应用案例