2010-01-06 5 views
0

Est-il possible de limiter le nombre d'entités associées récupérées via les critères Hibernate? Considérons les deux entités suivantes:Limiter les entités associées chargées via un critère Hibernate

@Entity 
public class History { 

    @OneToMany 
    private List<Entry> entries 

    ... 

} 

@Entity 
public class Entry { 

    @ManyToOne 
    private History history; 
    private DateTime date; 

    ... 

} 

Je dois utiliser un critère pour récupérer toutes les entités d'histoire, mais seulement retourner la dernière entité d'entrée pour chaque entité historique. En d'autres termes, le champ des entrées de chaque historique ne doit contenir que la dernière entrée pour cette entité historique. J'ai besoin de faire quelque chose comme un ordre et une limite à l'entrée même si j'interroge (avec des critères) sur l'histoire.

Est-ce possible et si oui, comment?

Répondre

1

Cela peut être fait en appelant les éléments suivants sur les critères:

criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP) 

Avec cette ResultTransformer, seules les entités associées qui correspondent aux restrictions seront peuplées.

Questions connexes