【问题标题】:Constants as parameter in NamedQueries is it a good practice?常量作为 NamedQueries 中的参数是一个好习惯吗?
【发布时间】:2018-05-15 12:28:08
【问题描述】:

我正在使用常量来组织我的@NamedQueries,但我对参数有疑问,使用常量作为参数也是一种好习惯吗?

例如,在整个应用程序中,我的 NamedQueries 按公司 ID 过滤。所以我创建了:

public static final String PARAM_EMPRESA_ID = "empresaId";

我是这样使用的:

@NamedQuery(name = EmbalagemAbaSuperiorTipo.QUERY_FETCH_BY_EMPRESA,
            query = "SELECT ep FROM EmbalagemAbaSuperiorTipo ep WHERE ep.empresa.id = :" + AppController.PARAM_EMPRESA_ID + " ORDER BY ep.descricao")

当 Hibernate 需要编译查询时,这会导致任何性能问题吗?还有没有更好的推荐?

提前致谢

【问题讨论】:

    标签: hibernate jpa jpa-2.0


    【解决方案1】:

    从 Hibernate 的角度来看,@NamedQuery 注解是在 Hibernate 启动时解析的。所以你不应该看到任何运行时性能问题。这也是一种将开发人员错误降至最低的好方法,因为您使用的是编译时常量而不是字符串,我在过去的经验中使用过并发现它很有用。

    【讨论】:

    • 感谢您分享您的经验。这就是尽量减少开发人员错误并保持模式的想法,因为在我的示例中,一段时间后开发人员开始在不同的地方创建“empId”、“empresaId”、“eId”。
    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 2021-07-23
    • 2014-12-22
    • 2020-08-25
    • 2015-05-08
    • 2010-09-11
    相关资源
    最近更新 更多