Проблема с проекцией в атрибуте SpringDataRest и @Lob

У меня есть Entity Person :

@Entity
public class Person implements Serializable {
@Id
@GeneratedValue(strategy = AUTO, generator = "PERSON_SEQ")
private Integer idPerson;
private String lastName;
private String firstName;
@Lob
private byte[] picture;

Репозиторий

public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> {}

Проекция

@Projection(name = "picture", types = { Person.class })
public interface ProjectionPicturePerson {
  byte[] getPicture();

}

Когда я использовал проекцию: ..../persons/1?projection=picture у меня есть эта ошибка

Произошла непредвиденная ошибка (тип = внутренняя ошибка сервера, статус = 500). Не удалось записать содержимое: [B нельзя преобразовать в [Ljava.lang.Object; (через цепочку ссылок: org.springframework.data.rest.webmvc.json.["content"]->$Proxy109["picture"]); вложенным исключением является com.fasterxml.jackson.databind.JsonMappingException: [B нельзя привести к [Ljava.lang.Object; (через цепочку ссылок: org.springframework.data.rest.webmvc.json.["content"]->$Proxy109["picture"])

Когда я использую проекцию на строку, пример lastName работает

@Projection(name = "lastName", types = { Person.class })
public interface ProjectionLastName {
   String getLastName();
}

Когда я не использую проекцию, она тоже работает

Джексон сериализует атрибут изображения

Есть ли ограничение на Blob?


person eric peladan    schedule 25.06.2015    source источник


Ответы (1)


Это ошибка в ProxyProjectionFactory. Я зарегистрировал и исправил DATACMNS-722 для вас, которые запланированы в будущих выпусках сервисов. (середина следующей недели).

person Oliver Drotbohm    schedule 25.06.2015
comment
Спасибо, Оливер, за быстрый ответ, может быть, увидимся на SpringOne. - person eric peladan; 25.06.2015