در حال حاضر بهترین گزینه برای این کار کتابخانه Speedment است که امکان ارتباط با دیتابیس به سبک جاوا 8 و stream ها و lambda expression ها را می دهد:
// Searches are optimized in the background!
Optional<Hare> harry = hares.stream()
.filter(NAME.equal("Harry").and(AGE.lessThan(5)))
.findAny();
query sql زیر بر روی دیتابیس اجرا خواهد شد:
SELECT * FROM `Hare`
WHERE `Hare`.`name` = "Harry"
AND `Hare`.`age` < 5
LIMIT 1;