如何在命名查询中将列名作为参数发送
How to send Column Name as parameter in Named Query
我正在编写一个命名查询来获取基于年度的数据。
查询
SELECT * FROM table1
WHERE ((year1 > 0) OR (year2> 0 OR (beyondYear2> 0)));
查询工作正常。从 JSP
我将选择年份,因此应该加载该特定年份的记录。上面的查询加载了所有年份范围的数据。有什么方法可以将 Column Name
作为参数传递,以避免每年编写查询吗?
SELECT * FROM table1
WHERE ( :yearRange > 0);
:yearRange : 作为参数。
您可以将参数用作开关:
SELECT * FROM table1
WHERE ((year1 > 0 AND :yearRange='year1') OR (year2> 0 AND :yearRange='year2' OR (beyondYear2> 0 AND :yearRange='beyondYear2')));
我正在编写一个命名查询来获取基于年度的数据。
查询
SELECT * FROM table1
WHERE ((year1 > 0) OR (year2> 0 OR (beyondYear2> 0)));
查询工作正常。从 JSP
我将选择年份,因此应该加载该特定年份的记录。上面的查询加载了所有年份范围的数据。有什么方法可以将 Column Name
作为参数传递,以避免每年编写查询吗?
SELECT * FROM table1
WHERE ( :yearRange > 0);
:yearRange : 作为参数。
您可以将参数用作开关:
SELECT * FROM table1
WHERE ((year1 > 0 AND :yearRange='year1') OR (year2> 0 AND :yearRange='year2' OR (beyondYear2> 0 AND :yearRange='beyondYear2')));