2014-09-16 8 views
6

अनदेखा - मेरे @RestResource (exported = false) को फ़ील्ड पर अनदेखा किया जाता है। स्प्रिंग डेटा बाकी अभी भी इससे json करना चाहते हैं, मैं बस, अब के लिए इसे छोड़ करने के लिए WorkflowEvent में rel बदलना चाहते हैं मुझे कुछ नहीं दिया ..@RestResource (exported = 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 का पर्दाफाश नहीं करते हैं, तो एनोटेशन का कोई प्रभाव नहीं पड़ता है। इस मामले में, जैक्सन को संपत्ति प्रस्तुत करने देने के लिए बस @JsonIgnore का उपयोग करें।

+0

जब भी इसमें भंडार होता है तब भी किसी अन्य इकाई में वर्कफ़्लोएवेंट संपत्ति पर @RestResource (exported = false) का कोई प्रभाव नहीं पड़ता है। अगर मैं रिपॉजिटरी को हटा देता हूं तो यह अभी भी वर्कफ़्लोएवेंट इकाई को लिंक बनाने का प्रयास करता है .. यह mypackage.WorkflowEvent.submission – freakman

+0

पर "एकाधिक एकाधिक लिंक लिंक" के साथ दुर्घटनाग्रस्त हो जाता है। ऐसा लगता है कि यह काफी शामिल हो रहा है। कोई मौका आप एक नमूना परियोजना प्रदान करने के लिए प्रदान करते हैं? –

+0

ऐसा लगता है कि किसी भी गुण के लिए भंडार नहीं होने के कारण यह है (मैंने इसे वर्कफ़्लोवेन्ट के लिए अब इसे पुन: उत्पन्न करने के लिए हटा दिया है)। यदि वहां है - सब कुछ ठीक है - लिंक उत्पन्न होते हैं और ठीक काम करते हैं। ओलिवर - यदि इसके लिए कोई तर्कसंगत कारण नहीं है तो मैं इस मुद्दे के साथ कुछ छोटी परियोजना बनाने की कोशिश करूंगा। – freakman

संबंधित मुद्दे