2014-06-24 14 views
6

"चक्र मिला" मैं एक परियोजना पूरी तरह से साथ स्प्रिंग डाटा MongoDB 1.4.2 चल रहा है। मैं 1.5.0 के लिए अद्यतन करने की कोशिश की और मैं (उद्धरण) autowiring के दौरान इस त्रुटि मिलती है:साथ स्प्रिंग डाटा मोंगो 1.5

की वजह से: org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ CyclicPropertyReferenceException: मिला क्षेत्र के लिए चक्र पथ 'filter.rules' के लिए 'फ़िल्टर' प्रकार में 'नियम'
org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ CycleGuard.protect (MongoPersistentEntityIndexResolver.java:370) ~ [वसंत-डेटा-मगोडब -1.5.0.RELEASE.jar: na]
org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ 2.doWithPersistentProperty (MongoPersistentEntityIndexResolve r.java:144) ~ [वसंत-डेटा-mongodb-1.5.0.RELEASE.jar: na]
org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ 2.doWithPersistentProperty (MongoPersistentEntityIndexResolver.java:138) ~ [वसंत-डेटा-MongoDB-1.5.0.RELEASE.jar: na]
org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties (BasicPersistentEntity.java:294) ~ [वसंत-डेटा-कॉमन्स-1.8 पर .0.RELEASE.jar: na]

मैं भंडार "RulesDAO" बस विस्तार "MongoRepository" है। यह "नियम" नाम की एक इकाई का प्रबंधन करता है। इस इकाई में कुछ बुनियादी फ़ील्ड और "फ़िल्टर" फ़ील्ड है। और इस फ़िल्टर श्रेणी में फ़िल्टर की एक सूची है (जो खाली हो सकती है)।

@Document(collection="rules") 
public class Rule { 

    @Id private String id; 

    private String name; 

    // other fields 

    private Filter filter; 

} 

public class Filter { 

    // for groups 
    private String condition; 

    private List<Filter> rules = new ArrayList<Filter>(); 


    // for query 
    private String field; 

    private String value; 

} 

("नियम" एक आदर्श नाम नहीं है, लेकिन यह बाध्यकारी MVC के लिए इस तरह से नामित किया जाना है) जहां यह नहीं है

तो Filter.rules संपत्ति एक चक्र के रूप में व्याख्या कर रहा है!

यह रिलीज में एक बग है या इस USECASE के लिए एक नया "झंडा" है (अच्छी तरह से शब्द "चक्र" की मेरी समझ में)?

धन्यवाद


पृष्ठभूमि कहानी के लिए, फ़िल्टर वर्ग या तो एक पत्ती या जटिल मानदंड का निर्माण करने के लिए इस्तेमाल एक पेड़ की एक नोड हो सकता है, यह खानों http://mistic100.github.io/jQuery-QueryBuilder की एक jQuery प्लगइन का JSON से builded है

उत्तर

1

दी प्रकार एक strcuture संभावित अनंत लूप के कारण सूचकांक जानकारी को हल करने की कोशिश कर रहा है और/या दुकान से मूल्यों को पढ़ने के दौरान होते हैं। स्टार्टअप डोमेन प्रकार के साथ-साथ संग्रह की सामान्य प्रकार की जानकारी का निरीक्षण किया जाता है। यह परिणामस्वरूप त्रुटि में वर्णित चक्र को इंगित करता है।

Rule -> Filter -> Filter.rules 
     ^    | 
      |    | 
      +----------------+ 

त्रुटि प्रारंभ होने से कंटेनर बंद नहीं करना चाहिए हालांकि - केवल लॉग में मुद्रित किया जाना चाहिए। हो सकता है कि आप जोड़कर DATAMONGO-949 में भाग लें और वर्तमान 1.5.1-स्नैपशॉट को स्पिन देना चाहते हैं।

कृपया open a ticket के लिए स्वतंत्र महसूस।

+0

मुझे समझ में आता है कि मेरा पैटर्न चेतावनी क्यों उठा सकता है, लेकिन मैं थॉमस ग्रेगरी के मामले में नहीं हूं (हालांकि वसंत सोचता है कि "स्ट्रिंग dispositionCode "DipositionCode का प्रकार है ...)। ऐसा लगता है कि एक ही समस्या – Mistic

+0

1.5.1 समस्या को हल नहीं करती है https://jira.spring.io/browse/DATAMONGO-962 – Mistic

+1

रूट में एक ही प्रकार के 2 या अधिक गुण होने पर कोई समस्या है । एक बार यह GA जाने के बाद 1.5.1 में हल किया जाएगा। –

2

आप उपयोग कर रहे हैं: निजी सूची < फ़िल्टर> नियम = नए ArrayList < फ़िल्टर>();

इसे इस पर बदलें: निजी सूची <?> बच्चे;

मुझे एक ही समस्या का सामना करना पड़ रहा था लेकिन इसका उपयोग करने के बाद कोड बिना त्रुटि के ठीक काम कर रहा है।

4

आपका कोड सही है। वह लॉग संदेश केवल INFO स्तर है जो आपको बताता है कि आपके कोड में संभावित चक्र संदर्भ है।

आप लॉगर को बदलकर उस परेशान संदेश को अनदेखा कर सकते हैं। यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं, तो इसे अपने application.properties फ़ाइल में जोड़ें: logging.level.org.springframework.data.mongodb.core.index=OFF

+0

संस्करण 1.5.0 के साथ यह सिर्फ एक लॉग संदेश नहीं था, यह एक अवरोधक अपवाद था। – Mistic

+0

ओपीएस .. मैं 1.6.3 का उपयोग कर रहा हूं, इसलिए यह मेरे लिए कोई समस्या नहीं है – Hank

+0

कोई भी मौका आप वसंत mongodb लॉगिंग के जुर्माना नियंत्रण पर अतिरिक्त जानकारी या लिंक प्रदान कर सकते हैं? –

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