मैं ऑब्जेक्ट की तलाश करने के लिए findOrCreateBy
का उपयोग करने की कोशिश कर रहा हूं या अगर मुझे कोई मिलान नहीं मिल रहा है, तो यह तत्काल काम कर रहा है, लेकिन यह मेरी अपेक्षा के अनुसार काम नहीं कर रहा है।क्या ऑरक्रेट अन्य डोमेन उदाहरणों के साथ काम करता है?
String myBaz = "some unique string"
FooType myFooType = FooType.findByName("Large")
// The Foo table is empty, so this should give me a new Foo
Foo myFoo = Foo.findOrCreateByBazAndFooType(myBaz, myFooType)
assert myFoo.baz == myBaz
assert myFoo.fooType == myFooType // Fails because myFoo.fooType is null,
// but should be set to myFooType
क्या मैं गलत कर रहा हूँ:
यह है कि मैं क्या है? fooType
क्यों ठीक से सेट नहीं किया जा रहा है? क्या यह अपेक्षित व्यवहार है या क्या यह Grails में एक बग है?
मदद मिल सकती है ठीक है, यह मूर्खतापूर्ण हो सकता है लेकिन जब से अपने डेटाबेस खाली, FooType.findByName है ("बड़े") अशक्त वापस आ जाएगी, है ना? और बाद में आप इस शून्य विशेषता को पारित करने वाली वस्तु बनाते हैं। तो, हाँ, myFoo.fooType वास्तव में इस मामले में शून्य होना चाहिए। –
@TiagoFarias, मैंने इस बिंदु पर अधिक सही होने के लिए प्रश्न को अद्यतन किया। FooTypes को डीबी में बूटस्ट्रैप किया गया है, इसलिए यह वास्तव में खाली नहीं है, लेकिन डीबी में कोई फू ऑब्जेक्ट्स नहीं हैं। जब 'findOrCreate *' कहा जाता है, 'myFooType'' FooType' का एक सतत उदाहरण है। – cdeszaq