常量作为 NamedQueries 中的参数是一个好习惯吗?
Constants as parameter in NamedQueries is it a good practice?
我正在使用常量来组织我的 @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 的角度来看,@NamedQuery
注释在 Hibernate 启动时被解析。所以你不应该看到任何运行时性能问题。这也是减少开发人员错误的好方法,因为您使用的是编译时常量而不是字符串,我在过去的经验中使用过并发现它很有用。
我正在使用常量来组织我的 @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 的角度来看,@NamedQuery
注释在 Hibernate 启动时被解析。所以你不应该看到任何运行时性能问题。这也是减少开发人员错误的好方法,因为您使用的是编译时常量而不是字符串,我在过去的经验中使用过并发现它很有用。