我正在查看我的项目的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命名查询是不可行的。
答案 0 :(得分:0)
如果目的是在没有代码重新编译的情况下促进SQL修改,那么肯定会这样做。您只需要将RuleDao注入DAO类。
但是在我看来,SQL查询修改应该通过标准的软件生命周期(设计,实现,测试,操作)。所以我很高兴我的SQL查询被硬编码到DAO类中。