On 4 Jan 2014, at 10:24, Martin Braun <[email protected]> wrote:
> Uhm. I totally forgot to add this functionality in my rewrite (I have
> rewritten most of the code last weekend)
> and I implemented a way to pass parameters into QueryTypes. You can even pass
> parameters that are dynamically
> determined by stating the property to get its value from. With that you can
> easily do RangeQueryTypes.
> If you want me to elaborate on that, I can provide you with an example.
That would be cool.
> In the annotation Version it would look something like this (example from
> above):
>
> @Queries(@Query(must = {
> @Must(subQuery = "queryAOrQueryD"),
> @Must(subQuery = "queryBOrQueryC"),
> @Must(subQuery = "queryE")}))
> @SubQueries({
> @SubQuery(id = "queryAOrQueryD",
> query = @Query(should = {@Should(subQuery = "queryA"),
> @Should(subQuery = "queryD")})
> @SubQuery(id = "queryBOrQueryC",
> query = @Query(should = {@Should(subQuery = "queryB"),
> @Should(subQuery = "queryC")})
> ...
> //define query[A-E] here.
> })
I have to say that his boggles my mind. You have to do a lot of mind work and
jumping forward and backward to put things
together. I guess we can agree that this is not a silver bullet which makes
writing queries objectively easier to write.
> Maybe it's because I don't like to work with the Junctions and put them
> together myself,
Well, you still have to put things together, just in annotation in this case.
Looping back to Emmanuel’s initial idea, maybe a combination of DSL and
parameter holder would be a better way to go.
I could imagine that would could drop the various ‘matching’ clauses and
instead in the end just pass the parameter bean to
createQuery. Basically, instead of:
Query query = monthQb
.keyword()
.fuzzy()
.withThreshold( .8f )
.withPrefixLength( 1 )
.onField( "mythology" )
.matching( "calder” )
...
.createQuery();
one would write something like:
Query query = monthQb
.keyword()
.fuzzy()
.withThreshold( .8f )
.withPrefixLength( 1 )
.onField( "mythology" )
…
.createQuery(paramterWrapper);
—Hardy
_______________________________________________
hibernate-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/hibernate-dev