0

我正在查看我的项目的 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 命名查询是不可行的。

4

1 回答 1

0

如果目的是在不重新编译代码的情况下方便地修改 SQL,那么可以。您只需要将 RuleDao 注入您的 DAO 类。

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

于 2013-06-19T22:59:08.333 回答