Проблем с проекцията в атрибута 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 имам тази грешка

Възникна неочаквана грешка (type=Internal Server Error, status=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();
}

Когато не използвам проекция, тя също работи

jackson сериализира атрибута на изображението

Има ли ограничение за 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