Comment utiliser le setParameterList() la méthode en veille prolongée?

J'ai une exigence pour aller chercher lignes sélectionnées à partir de la base de données Oracle basé sur ids fourni comme un tableau, quelque chose comme le SELECT ... FROM table_name WHERE id IN() requête.

Dans mes tentatives pour le faire, je suis en train d'utiliser le org.mise en veille prolongée.setParameterList(String name, Object []) méthode dans mon DAO comme suit.

@Service
@Transactional(readOnly = true, propagation=Propagation.REQUIRES_NEW)
public final class ProductImageDAO implements ProductImageService {

    @SuppressWarnings("unchecked")
    public List<Object[]> getFileName(String[] list) {
        return sessionFactory
                .getCurrentSession()
                .createQuery("SELECT prodImageId, prodImage FROM ProductImage WHERE prodImageId=:list")
                .setParameterList("list", list).list();
    }
}

Le paramètre de type de String[] dans la méthode donnée est fournie à partir de la Printemps de contrôleur de classe.

Il provoque exception.

org.mise en veille prolongée.hql.ast.QuerySyntaxException: unexpected token: , près de
ligne 1, colonne 78 [select prodImageId, prodImage de
de modèle.ProductImage où prodImageId=:id0_, :id1_, :id2_, :id3_,
:id4_, :id5_]

Quel est le moyen de récupérer les lignes sélectionnées basés sur la liste de ids de l'utilisation d'Hibernate?

OriginalL'auteur Tiny | 2013-01-12