QueryDSL + ActiveObjects Resources

Are there any guides/tutorials on implementing QueryDSL? I struggle to find actually relevant and workable examples. I created two test projects on my own to understand how to implement this… Would these be worth sharing? I’m just not sure what the current state is here.

Of note:

  • I found that OneToMany / ManyToMany relationships are not well covered by the existing examples
  • I found that Joins are not well covered by the existing examples

To be frank, I have no clue how a developer new to the ecosystem would even progress. There’s ActiveObjects documentation, some. There’s QueryDSL documentation, some. But there’s really nothing covering best practices or how to accomplish basics within an actual Atlassian application. What’s the plan here?

Steven

1 Like

Hi Steven,

Have you had a look at Bitbucket?

1 Like

Yes I had read that prior to posting this, I found that was helpful but rather incomplete in it’s coverage.

I’ve had to work through a lot of this on my own and it involves some boilerplate every time. There are references to internal tools that Atlassian uses to generate QTypes from Entity interfaces, things of that nature, but these tools are not exposed to plugin developers apparently.

I suppose I no longer seek documentation. @aswan – Would it be possible to release https://bitbucket.org/atlassian/jira-querydsl-codegen/ to the world or whatever tooling you’re using to reduce the manual effort behind mapping AO → QueryDSL ? It appears that ya’ll generate all this from yaml and that would be a lot nicer than how I have to do it today.

Let me look into that for you. Note that it would only be useful for Jira apps, because AFAIK, only Jira uses OfBiz.

I seem to have recalled seeing two different links within the various product source code implying that there was a code generation tool for ActiveObjects entities/Query DSL types. I believe I recalled the link above. Instead, this looks more appropriate:
https://bitbucket.org/atlassian/db-schema-translator

I locate this within the QApproval types on the Jira Service Desk app.