Applying multiple filters when retrieving values from a JIRA database

Prameesha Samarakoon September 2, 2013

Hi,

I'm developing a JIRA plugin that connects to a JIRA database and retrieves values. I use the following line to filter the issues based on issue assignee, if I want to add another filter to this, how should I modify it?

List<GenericValue> issues = delegator.findByCondition("Issue", new EntityExpr("assignee",EntityOperator.EQUALS,"abc"), EasyList.build("id","key","assignee","status"));

In sql terms it should be something similar to "select id, key, assignee, status from jira_issue where assignee='abc' and status='resolved'".

Any help would be much appreciated.

Thanks.

1 answer

1 accepted

0 votes
Answer accepted
Sreenivasaraju P
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 2, 2013

You can create a filter with your search criteria and use it to retrieve the issue. If you use thismethod , if later you want to change the search criteria no need to change the code .

ex: final JqlQueryBuilder builder = JqlQueryBuilder.newBuilder();

builder.where().savedFilter().eq(new Long(activeEmployeeFilterId))

Hope this may help you

Prameesha Samarakoon September 2, 2013

Hi,

could you please explain a bit more, Im relatively new to JIRA development so its a little unclear. How do I define the activeEmployeeFilterId in the java class of my plugin and how can I access the values retrieved by the filter? What I need to do is to retrieve the issues and filter them based on the assignee and status and reassign the issue. In order to do this I need to filter issues based on two selection criteria.

Thank you for the prompt response

Sreenivasaraju P
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 3, 2013

You can create filters in Jira. For each filter it will assign id.

ex:- you have created a filter called all active employees and filter id is 10000

final JqlQueryBuilder builder = JqlQueryBuilder.newBuilder();

builder.where().savedFilter().eq(new Long("10000")) // this will give the same results as the filter you created.

If you want to add more condition to this you can add as follows.

builder.where().savedFilter().eq(new Long("10000"))

.and().customField(field1.getIdAsLong()).eq(field1value)

.and().customField(field2.getIdAsLong()).eq(field2value);

means you can add more conditions on the filter and the get result.

Suggest an answer

Log in or Sign up to answer