在为我的某个实体创建Projection类时出现问题。当对象的一个嵌入元素为空时,问题就会引发。
投影类来源是:
@Projection(name = "summary", types = {Question.class})
public interface QuestionProjection {
Long getId();
@Value("#{target.getResource().getResourceUrl()}")
String getResourceUrl();
}
JSON对象的结构在这里(对应的@Entity类,相应地创建了getter / setter方法):
"_embedded" : {
"Rest API" : [ {
"text" : "text",
"_links" : {
"self" : {
"href" : "http://localhost:8080/rest/questions/9{?projection}",
"templated" : true
},
"resource" : {
"href" : "http://localhost:8080/rest/questions/9/resource"
},
"approver" : {
"href" : "http://localhost:8080/rest/questions/9/approver"
}
}
当我关注链接http://localhost:8080/rest/questions/9/resource时,我看到一个空白页面(根本没有数据,元素为空)。
当我使用新创建的投影时,我也会收到以下错误:
Resolving exception from handler [public org.springframework.hateoas.Resources<?> org.springframework.data.rest.webmvc.RepositoryEntityController.getCollectionResource(org.springframework.data.rest.webmvc.RootResourceInformation,org.springframework.data.rest.webmvc.support.DefaultedPageable,org.springframework.data.domain.Sort,org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler) throws org.springframework.data.rest.webmvc.ResourceNotFoundException
所以问题是 - 在空嵌入元素(集合)的情况下如何摆脱NPE?我可以对嵌入式元素进行某种条件处理吗?
提前谢谢。