在处理一些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存储库实现是否已经存在或存在更好的解决方案?
答案 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中使用