Applying multiple filters when retrieving values from a JIRA database

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

Accepted Answer
0 votes

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

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

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
Community showcase
Posted Sep 18, 2018 in Jira

What modern development practices are at the heart of how your team delivers software?

Hey Community mates! Claire here from the Software Product Marketing team. We all know software development changes rapidly, and it's often tough to keep up. But from our research, we've found the h...

21,579 views 2 7
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you