When we use the native queries in DB4O with Java, we are confronted to the use of anonymous classes while .Net use the delegate facility which is of course shorter and smarter.
When Java will have Block Closure capabilities, the problem will be solved simply.... Up to this great deadline :-) we can use Groovy to perform this task. You only have to create builder to do it, or use the groovy closures.
There is a good groovy module which aims to create a DSL to make easier the use of SODA like expressions : Groovy4DB40..
A good tutorial for this topic is also available here.
Groovy is fun too :-)