目前我有一个java应用程序正在查询DB2 10.5数据库并使用JPA 2.0作为包装器。我有一个工作查询,可以很好地获取我需要的数据。但是,除了添加动态参数之外,我需要第二个查询与第一个查询完全相同。他们的查询足够大(并且有几个类似的),似乎大量的重复,列出相同的查询基本上两次,但有一个包含额外的条件和一个不让我尝试给我例如:
在我的orm.xml中(我们倾向于使用named-query和named-native-query)我有以下命名查询:
select dates
from DateTable dates, Product p
where dates.id = p.id
and ... <multiple conditions etc>
我的第二个查询将与上面的内容完全相同,除了 将从代码中获取动态参数:
select dates
from DateTable, Product p
where dates.id = p.id
and p.id = :someDynamicIdHere
and ... <multiple conditions etc>
我想将它们组合成一个JPA可以理解的orm.xml定义。要清楚,当someDynamicIdHere不为null时,我想在条件“和p.id =:someDynamicIdHere”中添加额外的条件。我已经尝试了CASE / WHEN / THEN / END,但我过去使用的只是列操作,而不是动态更新where子句。这是可能的,如果是这样,语法是什么?谢谢你的帮助! -Doug
答案 0 :(得分:3)
使用条件API:
date_default_timezone_set('Asia/Kolkata');
$del_time = $this->input->post('bid_time'); //for ex '2016-12-01 12:30:00';
$now = date('Y-m-d H:i:s');
$loc_del_date_time = strtotime($del_time);
$loc_curr_date_time = strtotime($now);
$loc_mid_time = ($loc_del_date_time + $loc_curr_date_time) / 2;
$loc_mid_time = round($loc_mid_time);
echo $loc_new_date = date('Y-m-d H:i:s', $loc_mid_time);