Hibernate:从子表中获取一个字段

Hibernate:从子表中获取一个字段,hibernate,Hibernate,假设我有桌子 Person(personId, name) Address(addressId, fk_Person_personId, address, creationTime) 因此,一个人可以输入多个地址 是否可以基于Address.creationTime创建Person.getMostRecentAddress()方法?您可以在HQL查询中使用max() select max(p.address.creationTime) from Person p where ... 我没有

假设我有桌子

Person(personId, name) 
Address(addressId, fk_Person_personId, address, creationTime)
因此,一个人可以输入多个地址

是否可以基于
Address.creationTime
创建
Person.getMostRecentAddress()
方法?

您可以在HQL查询中使用
max()

select max(p.address.creationTime) from Person p where ...
我没有试过,但在

HQL查询甚至可以返回属性“”上聚合函数的结果,但在那里它们只使用一个间接寻址,而不是像
p.address.creationTime
那样使用两个间接寻址

另一种办法是:

select max(a.creationTime) from Address a where a.person.id = ...

我想这就可以了。

我不想要creationTime的值,而是要这个人最近的creationTime的Address对象