如标题所示 - 我的 @RestResource(exported=false) 在字段中被忽略。 Spring data rest 仍然想从中制作 json,我想暂时跳过它,因为更改 WorkflowEvent 中的 rel 什么也没给我..
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "submission")
@OrderBy("date desc")
@RestResource(exported = false)
private List<WorkflowEvent> events = new ArrayList<WorkflowEvent>();
我得到:
{"timestamp":1410850806347,"status":500,"error":"Internal Server Error","exception":"org.springframework.http.converter.HttpMessageNotWritableException","message":"Could not write JSON: Detected multiple association links with same relation type! Disambiguate association @javax.persistence.JoinColumn(insertable=true, unique=false, referencedColumnName=, columnDefinition=, name=submission_id, updatable=true, nullable=true, table=, [email protected](name=, value=CONSTRAINT, foreignKeyDefinition=)) @javax.persistence.ManyToOne(fetch=EAGER, cascade=[], optional=true, targetEntity=void) @org.springframework.data.rest.core.annotation.RestResource(description=@org.springframework.data.rest.core.annotation.Description(value=), path=, exported=false, rel=) private mypackage.MyClass mypackage.WorkflowEvent.myclass using @RestResource!; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Detected multiple association links with same relation*
当然,当我评论这个字段时它会起作用。
我的版本:
\- org.springframework.data:spring-data-rest-webmvc:jar:2.1.4.RELEASE:compile
[INFO] | \- org.springframework.data:spring-data-rest-core:jar:2.1.4.RELEASE:compile
[INFO] | +- org.springframework.hateoas:spring-hateoas:jar:0.16.0.RELEASE:compile
最佳答案
@RestResources
仅在指向托管资源的域属性上受支持。因此,如果您不通过 Spring Data REST 托管存储库公开 WorkflowEvent
,则该批注没有任何作用。在这种情况下,只需使用 @JsonIgnore
即可让 Jackson 不呈现该属性。
关于json - @RestResource(exported=false) 被忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25862773/