我在使用Hibernate创建子查询时遇到问题。 假设我们有这样的查询(我们想选择包含最古老的老虎的动物园):
SELECT * FROM zoo LEFT JOIN animals
ON animals.zoo_id = zoo.id
WHERE animals.species = 'tigers' AND
animals.age = (SELECT max(age) FROM animals WHERE animals.species = 'tigers')
在Hibernate中,它看起来像这样:
session.createCriteria(Zoo.class)
.createAlias("animals", "a")
.add(eq("a.species", "tigers"))
.add(eq("a.age", ?);
但遗憾的是我不知道如何设置子查询:
(SELECT max(age) FROM animals WHERE animals.species = 'tigers')