Как получить рабочий элемент на основе измененной даты и времени с помощью RTC Java API

Я хочу запросить RTC с измененной датой. Мой запрос состоит в том, чтобы проверить, что измененная дата совпадает с заданной датой и временем, но ответ, который я получаю, основан на заданной дате и игнорирует время.

Ответ:

Дата запроса: 07.08.2015 15:44:09

Идентификатор: 2583 Дата изменения: 2015-08-07 14:43:19.157

Идентификатор: 2582 Дата изменения: 2015-08-07 14:43:19.419

В идеале обе записи не должны быть получены в ответ, так как это происходит раньше заданного времени.

Ниже мой код:

IQueryableAttributeFactory factory = QueryableAttributes.getFactory( IWorkItem.ITEM_TYPE ); 

IQueryableAttribute recAttr1 = factory.findAttribute(projectArea, IItem.MODIFIED_PROPERTY, auditableClient, null ); 
IQueryableAttribute recAttr2 = factory.findAttribute(projectArea, IWorkItem.TYPE_PROPERTY, auditableClient, null );     

Date date = new Date();
date.setDate(date.getDate()-6);
DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
String reportDate = df.format(date);
System.out.println("Date: "+reportDate);
Timestamp timeStamp = new Timestamp(date.getTime()); 

AttributeExpression recExpr1 = new AttributeExpression(recAttr1, AttributeOperation.EQUALS, timeStamp ); 

Term term= new Term(Operator.AND); 
term.add(recExpr1); 

IQueryClient queryClient = (IQueryClient) teamRepository.getClientLibrary(IQueryClient.class); 
IQueryResult<IResolvedResult<IWorkItem>> result = queryClient.getResolvedExpressionResults(projectArea, (Expression)term, IWorkItem.FULL_PROFILE); 
System.out.println("This is total number: "+result.getResultSize(monitor).getTotal()+"\n");                 

while(result.hasNext(null)){ 
    IResolvedResult<IWorkItem> resolvedWorkItem = result.next(null); 
    IWorkItem workItem = resolvedWorkItem.getItem();
    Date date1 = resolvedWorkItem.getItem().modified(); 
    System.out.println("Id: "+workItem.getId());
    System.out.println("Modified date :"+date1.toString()+"\n"); 
}   

Могу ли я получить результат не только по дате, но и по времени?

Я твердо уверен, что внутренняя логика RTC полностью игнорирует время и запрашивает базу данных только на основе даты.


person Neha S    schedule 13.08.2015    source источник


Ответы (1)


У меня точно такая же проблема. Я думал, может быть, результаты где-то закэшированы, но это было не так.

Я не нашел способа сделать это с помощью запроса RTC, но должна быть возможность отфильтровать эти записи в вашем коде после возврата запроса RTC. Сэкономьте время, которое вы использовали для выполнения поиска, а затем используйте его, чтобы пропустить любые записи, выполнив следующие действия:

if (workItem.modified().getTime() < lastModified)
  continue;

Я знаю, что это не идеально, но, по крайней мере, есть способ заставить работать желаемый набор.

person cityshrimp    schedule 14.07.2016