mysql—通过在现有命名查询之上添加一个条件来重用该查询,而不是在hibernate中重复完整的查询

qncylg1j  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(136)

有没有什么方法可以重用(通过在现有查询之上添加一个条件)命名查询(例如,在hibernate的.hbm文件中使用标记来定义namedquery)。?例如:假设我在.hbm文件中定义了一个命名查询

<sql-query name="existingQuery">
        <return alias="queryNumber1" class="com.xyz.Person"/>
        <![CDATA[**select country, name from person where date_of_birth >== TO_DATE(CONCAT (:dateOfBirth,'00:00:00'), 'YYYY/MM/DDHH24:MI:SS')**]]>
    </sql-query>

现在我需要另一个命名查询(在附加条件下投影相同的属性集)。

<sql-query name="newQuery">
        <return alias="queryNumber2" class="com.xyz.Person"/>
        <![CDATA[**select country, name from person where date_of_birth >== TO_DATE(CONCAT (:dateOfBirth,'00:00:00'), 'YYYY/MM/DDHH24:MI:SS')**and age > :age ]]>
    </sql-query>

有没有办法,我可以避免在数据库查询端突出显示的重复(即,我可以使用重用“existingquery”作为“newquery”)。我不想在java代码中过滤?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题