Хороший способ выбрать кортеж с помощью JPA

final List<Tuple> data =
                    em.createQuery("SELECT p.id AS i, p.membership AS m FROM Player p WHERE p.id IN :ids", Tuple.class)
                    .setParameter("ids", ids)
                    .getResultList();

Это дает ошибку « Невозможно создать TypedQuery для запроса с более чем одним возвратом ». Я мог бы обойти это, оставив параметр типа (и используя Object [] вместо Tuple, как я позже выяснил):

@SuppressWarnings("unchecked")
final List<Object[]> data =
                    em.createQuery("SELECT p.id AS i, p.membership AS m FROM Player p WHERE p.id IN :ids")
                    .setParameter("ids", ids)
                    .getResultList();

Но есть ли решение, которое не требует непроверенного кода?

7
задан Bart van Heukelom 29 December 2011 в 13:06
поделиться