SpringDataRest和@Lob属性中的投影问题

时间:2015-06-25 09:09:23

标签: spring-data-jpa projection spring-data-rest

我有一个实体人员:

@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”] - &gt; $ Proxy109 [“picture”]);嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:[B不能强制转换为[Ljava.lang.Object; (通过参考链:org.springframework.data.rest.webmvc.json。[“content”] - &gt; $ Proxy109 [“picture”])

当我在String上使用投影时,例如,lastName可以使用

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

当我不使用投影时,它也有效

杰克逊序列化图像属性

对Blob有限制吗?

1 个答案:

答案 0 :(得分:1)

这是ProxyProjectionFactory中的错误。我已经为即将到来的服务版本(下周中)准备好了DATACMNS-722