Как отобразить результат запроса в пользовательском объекте, который не является сущностью? - PullRequest
0 голосов
/ 14 сентября 2018

Этот запрос в основном работает как задумано:

@Query("SELECT " +
       "   votedItem.groupVoting.id AS votingId, " +
       "   COUNT(votedItem) AS nbVotes " +
       "FROM VotingVotedItemEntity votedItem " +
       "WHERE votedItem.id IN :votingIds " +
       "GROUP BY votedItem.id, votedItem.item.id")
List<Object> findItemVoteCountsByVotingIds(@Param("votingIds") List<Long> votingIds);

Моя проблема в том, что я не могу получить результат в объект. Запрос не является окончательным, но в конце он должен быть сопоставлен с классом:

public class ItemVotes 
{
    private String name;
    private Integer voteCount;
    /*  Getter & setter */
}

Я не знаю, какой путь здесь. На данный момент я думаю, что я должен создать его JpaRepository:

public interface VoteCountsRepository extends JpaRepository<ItemVotes, Long> {
}

но это не работает, так как сервер умирает при запуске на

IllegalArgumentException: неуправляемый тип

Может кто-нибудь объяснить мне, как сопоставить пользовательские типы с объектами здесь?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы должны быть в состоянии сделать что-то , как это :

@Query("SELECT " +
       "   new package.of.class.ItemVotes(votedItem.groupVoting.id AS votingId, " +
       "   COUNT(votedItem) AS nbVotes) " +
       "FROM VotingVotedItemEntity votedItem " +
       "WHERE votedItem.id IN :votingIds " +
       "GROUP BY votedItem.id, votedItem.item.id")
List<ItemVotes> findItemVoteCountsByVotingIds(@Param("votingIds") List<Long> votingIds);

Вызывается выражением конструктора JPQL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...