SQL \ HQL查询存储库

时间:2011-01-24 12:07:02

标签: java sql hibernate grails hql

在处理一些java项目时,我看到了某种SQL存储库。

我们的想法是将所有查询放在一个(或几个)xml文件中,并在需要时按名称检索它们。像这样:

String sql = getSQLRepository().getSQL("SELECT_ALL_ROWS", params)
String sql2 = getSQLRepository().getSQL("SELECT_ROWS_WITH_COND", params)

在我目前的Grails项目中,我在很多类中都有很多HQL查询,并且很难跟踪它们。似乎HQL存储库是非常好的解决方案。

那么有人能说出某种SQL \ HQL存储库实现是否已经存在或存在更好的解决方案?

4 个答案:

答案 0 :(得分:2)

在Hibernate参考中查看Mapping Queries

答案 1 :(得分:2)

我们开始使用http://source.mysema.com/display/querydsl后,无需考虑文本查询以及如何管理它们。

答案 2 :(得分:1)

我建议你使用好的旧属性文件。您可以将它们放入类路径中,然后使用如下:

Properties sql = new Properties();
properties.load(getClass().getResourceAsStream("sql.properties"));
////////
String query = sql.get("SELECT_ALL_ROWS");

答案 3 :(得分:0)

我很抱歉,它与Hibernate没有关系,但是当我与iBatis合作时,有一些情况正如你正在写的那样。一些xml(部分生成的)文件,包含SQL查询,很容易在DAO中使用