如何在命名查询

时间:2017-12-15 05:19:01

标签: oracle hibernate named-query

我正在编写一个命名查询来根据年度基数获取数据。

查询

SELECT * FROM table1
   WHERE ((year1 > 0) OR (year2> 0 OR (beyondYear2> 0)));

查询工作正常。从JSP我将选择年份,因此对于该特定年份,记录应该加载。以上查询加载了所有年份范围的数据。有没有什么方法可以将Column Name作为参数传递,以避免每年编写查询?

SELECT * FROM table1
 WHERE ( :yearRange > 0);

:yearRange :作为参数。

1 个答案:

答案 0 :(得分:1)

您可以将参数用作开关:

SELECT * FROM table1
  WHERE ((year1 > 0 AND :yearRange='year1') OR (year2> 0 AND :yearRange='year2' OR (beyondYear2> 0 AND :yearRange='beyondYear2')));