我正在使用常量来组织我的@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需要编译查询时,这会导致任何性能问题吗?还有更好的推荐吗?
提前致谢
答案 0 :(得分:2)
从Hibernate的角度来看,在Hibernate启动时会解析@NamedQuery
个注释。所以你不应该看到任何运行时性能问题。它也是一种很好的方法,可以最大限度地减少开发人员的错误,因为你使用的是编译时常量而不是字符串,我已经使用过并发现它在我过去的经历中很有用。