2014-09-16 2 views
6

как в заголовке - мой @RestResource (exported = false) игнорируется в поле. Spring остальные данные по-прежнему хотят, чтобы сделать JSON из этого, я хотел бы просто пропустить его сейчас, так как изменение отн в WorkflowEvent не дал мне ничего ..@RestResource (экспортировано = false) игнорируется

@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([email protected]iption(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 

ответ

11

@RestResources поддерживается только на свойствах домена, которые указывают на управляемые ресурсы. Таким образом, если вы не выставляете WorkflowEvent управляемым репозиторией Spring Data REST, аннотация не имеет никакого эффекта. В этом случае просто используйте @JsonIgnore, чтобы позволить Джексону не отображать свойство.

+0

Даже если у него есть репозиторий, тогда @RestResource (exported = false) в свойстве WorkflowEvent в каком-либо другом объекте не действует. Если я удаляю репозиторий, он по-прежнему пытается создать ссылку на объект WorkflowEvent. Он сбой с «Обнаружен несколькими связями» на mypackage.WorkflowEvent.submission – freakman

+0

Это, кажется, довольно активно. Есть ли вероятность, что вы предоставляете образец проекта? –

+0

кажется, что у него нет репозитория для какого-либо свойства (я удалил его для WorkflowEvent сейчас, чтобы воспроизвести его). Если его там - все в порядке - ссылки генерируются и работают нормально. Оливер - если нет разумной причины для этого, я попытаюсь создать небольшой проект с этой проблемой. – freakman

Смежные вопросы