Hibernate, sélectionnez par id ou colonne unique
Je suis de l'utilisation d'hibernate pour Java, et je veux être en mesure de sélectionner des utilisateurs par l'id ou le nom de la base de données.
Bonne chose à propos de Hibernate est qu'il met en cache le résultat par id, mais il me semble être incapable de le faire, il le cache par le nom.
static Session openSession = Factory.openSession();
public static User GetUser(int Id) {
return (User) openSession.get(User.class, new Integer(Id));
}
public static User GetUser( String Name ){
return (User) openSession.createCriteria( User.class ).
add( Restrictions.eq("username", Name) ).
uniqueResult();
}
Si j'utilise GetUser(1) de nombreuses fois, hibernate va seulement montrer qu'il a exécuté la première fois.
Mais chaque fois que j'utilise GetUser("user1"), hibernate montre qu'il est en cours d'exécution d'une requête à la base de données.
Quelle serait la meilleure façon d'avoir de la chaîne d'identificateur d'être mis en cache aussi?
OriginalL'auteur Nican | 2010-06-17
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser la mise en cache de requêtes afin d'éviter l'accès de base de données lors de l'interrogation par nom.
http://www.javalobby.org/java/forums/t48846.html
OriginalL'auteur btreat