2017-01-17 4 views
1

Я пытаюсь собрать простой сервис отдыха с springboot 1.4.3. У меня есть это и работает с простыми запросами, как findByRecid, однако, когда я пытаюсь сделать @Query заявление на той же сущности, я получаю ниже сообщение об ошибкеSpringboot JPA @Query Rest Предоставление PersistentEntity не должно быть нулевым

{ «причина»: NULL, «сообщение»:» PersistentEntity не должно быть пустым! "}

Кроме того, если я использую полное имя для объекта в запросе, Intellij говорит мне, что класс не является сущностью, даже если он отмечен @Entity и работает со стандартными запросами Springboot. Пожалуйста, помогите, если это возможно. Я пытаюсь понять это в течение нескольких дней. Ниже приведен запрос для справки

@Query("SELECT new com.test.domain.ReceivableBeans.RecAgeBucketGroupAmountSum(r.agebucket, sum(r.amount)) from com.test.domain.Receivable as r GROUP BY r.agebucket") 
    List<com.test.domain.ReceivableBeans.RecAgeBucketGroupAmountSum> recByAgeBucket(); 
+1

Вы больше не запрашиваете дебиторскую задолженность, а получаете результаты групповой агрегации. Попросите метод вернуть объект, у которого есть атрибут «agebucket» и «amount». –

+0

Спасибо, кафе. Пробовал это, а затем получил следующую ошибку: «Никаких псевдонимов, найденных в корте для результата! Убедитесь, что ваш запрос определяет aliases !; вложенное исключение - это java.lang.IllegalStateException: никаких псевдонимов, найденных в корте для результата!» Еще странно, что, когда я использую полное имя дебиторской задолженности, Intellij сообщает мне, что класс не является сущностью, хотя он помечается как таковой с @Entity – Sam

+0

Привет Нейл, какие-либо другие мысли? У меня есть работа с новым классом с возрастными ведрами и атрибутами количества, но, тем не менее, получение того же PersistentEntity не должно быть нулевой проблемой. – Sam

ответ

0

Try:

@Query("select new ReceivableStats(r.agebucket, sum(r.amount)) from Receivable r group by r.agebucket") 
List< ReceivableStats> recByAgeBucket(); 

или название алиасы в запросе, например,

sum(r.amount) as amount 

и вернуть свой метод Object [].

+0

Не работает, к сожалению. Если я не включаю полное имя, я получаю сообщение «Не могу разрешить символ» в intellij и не могу запустить службу. Однако добавление квалифицированного имени в работу, но я получаю ту же ошибку, что и раньше, к сожалению {"cause": null, "message": "PersistentEntity не должно быть null!"} – Sam

+0

Любые мысли о том, почему репозиторий не увидит мой класс объекта как объект, упомянутый в заявлении @Query? – Sam

+0

У кого-нибудь есть мысли по этому поводу? – Sam

Смежные вопросы