通过spring配置文件将查询注入DAO

时间:2013-06-19 22:42:48

标签: java spring

我正在查看我的项目的DAO类,它在java类中具有本机sql查询。根据不同的条件有不同的查询。我打算从java类中取出这些查询。它可以是这样的 -

<bean name="hibernateRuleDao" class="com.xyz.dao.RuleDao">
  <property name="ruleForSystemQuery">
    <value>
      select distinct rule from NormalRule as rule 
      inner join fetch rule.dimensions dimensions
      where rule.system = :system and rule.status = :status
    </value>
  </property>
  <property name="ruleAuditQuery">
    <value>
       select ra from RuleAudit ra where ra.rule.name =
       :ruleName
    </value>
  </property>
</bean>

这是正确的做法吗?还有其他更好的方法吗?

注意:在我的用例中使用hibernate / jpa命名查询是不可行的。

1 个答案:

答案 0 :(得分:0)

如果目的是在没有代码重新编译的情况下促进SQL修改,那么肯定会这样做。您只需要将RuleDao注入DAO类。

但是在我看来,SQL查询修改应该通过标准的软件生命周期(设计,实现,测试,操作)。所以我很高兴我的SQL查询被硬编码到DAO类中。