У меня есть следующий репозиторий:Вернуться на заказ типизированный объект из JpaRepository
public interface UserRepository extends BaseDAO<User> {
Collection<User> findByEmail(@Param("email") String email);
@Query("select new com.data.CustomUser(upper(substring(u.lastName, 1, 1)) as initial, count(*)) from User u join u.chats c where c.business=:business group by upper(substring(u.lastName, 1, 1)) order by initial")
List<CustomUser> getContactsIndex(@Param("email") String email);
}
, который подвергается воздействию с Spring Data REST. Объект User
является управляемым объектом, а CustomUser
нет, и, как вы можете видеть, он построен на лету, используя пользовательский запрос.
Как только я хочу вызвать эту функцию, она завершится с исключением Persistent entity must not be a null!
. Есть ли способ реализовать это поведение?
P.S. Expose CustomUser
с отдельным хранилищем невозможно, поскольку он не является управляемым объектом.
Это только для Spring Data Rest или вы вызываете этот метод также в разных местах. –
@ M.Deinum Only Spring Data Rest. Ранее этот фрагмент кода работал нормально как автономный DAO – nKognito
. Затем вы могли бы использовать [Прогнозы или Выдержки] (http://docs.spring.io/spring-data/rest/docs/current/reference/html/#projections-excerpts .projections) вместо того, чтобы делать это с JPA. –