Запрос HQL для объекта с максимальным значением

У меня есть объект Hibernate, который выглядит следующим образом (аксессоры для краткости опущены):

@Entity
@Table(name="FeatureList_Version")
@SecondaryTable(name="FeatureList",
    pkJoinColumns=@PrimaryKeyJoinColumn(name="FeatureList_Key"))
public class FeatureList implements Serializable {

    @Id
    @Column(name="FeatureList_Version_Key")
    private String key;

    @Column(name="Name",table="FeatureList")
    private String name;

    @Column(name="VERSION")
    private Integer version;

}

Я хочу создать HQL-запрос, который извлекает самую последнюю версию FeatureList. Следующий вид запроса работает:

Select f.name, max(f.version) from FeatureList f group by f.name

Проблема в том, что не заполняется ключевое поле, которое мне нужно, чтобы содержать ключ записи с наивысшим номером версии для данного FeatureList. Если я добавлю f.key в select, он не будет работают, потому что он не входит в группу или агрегат, и если я помещаю его в группу, все это перестает работать, и он просто дает мне каждую версию как отдельный объект.

Итак,кто-нибудь может помочь?

31
задан rjsang 21 December 2010 в 08:57
поделиться