2012-03-06 13 views
6

मेरे पास एक ArrayCollection फ़ील्ड के साथ एक इकाई है। एनोटेशन में मैंसिद्धांत 2.1: ऑर्डर कैसे करें संग्रह में कुल क्षेत्र से?

@ORM\OrderBy({"somefield" = "DESC"})

लिख सकते हैं और मुझे लगता है कि संग्रह इकाई से प्राप्त स्वचालित रूप से आदेश दिया जा जाएगा।

मेरा प्रश्न यह है कि कुल क्षेत्रों द्वारा आदेश देना संभव है?

मेरे वर्तमान मुद्दा: visited/shown: visited और shown, मैं एक रेटिंग सूचकांक है, जो है द्वारा संग्रह क्रमबद्ध करना चाहते हैं: मैं संग्रह इकाई में 2 क्षेत्रों की है। मैंने एनोटेशन में इसे लिखने की कोशिश की, लेकिन यह कहता है कि यह एक वैध क्षेत्र होना चाहिए। मुझे पता है कि डीक्यूएल के साथ ऐसा कैसे करें, लेकिन मुझे नहीं पता कि एनोटेशन के साथ एंटिटी की घोषणा में इसे कैसे बनाया जाए।

अग्रिम धन्यवाद!

उत्तर

1

आपको ऑर्डर द्वारा ऑर्डर द्वारा गणित ऑपरेशन की आवश्यकता है - एसक्यूएल में यह विज़िट/दिखाए गए डीईएससी द्वारा ऑर्डर किया जाएगा। मुझे लगता है कि एनोटेशन के भीतर करना संभव नहीं है।

3

बिल्कुल यकीन नहीं है कि मैं आपकी समस्या को समझता हूं। लेकिन

@ORM/OrderBy({"visited" = "DESC", "shown" = "DESC"})

परिणाम के रूप में देने के क्या करता है?

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-orderby से:

OrderBy में DQL स्निपेट केवल अयोग्य, गैर उद्धृत फ़ील्ड नाम की और एक वैकल्पिक एएससी/DESC स्थितीय बयान से मिलकर करने की अनुमति दी है। एकाधिक फ़ील्ड को अल्पविराम (,) द्वारा अलग किया जाता है। संदर्भित फ़ील्ड नामों को @ManyToMany या @OneToMany एनोटेशन की targetEntity क्लास पर मौजूद होना चाहिए।

+1

नहीं, उसे ऑर्डर द्वारा स्टेटर की आवश्यकता है - एसक्यूएल में यह 'ऑर्डर द्वारा दिखाया गया/दिखाया गया डीईएससी' होगा। मुझे लगता है कि एनोटेशन –

+0

के भीतर करना संभव नहीं है यह काम करता है! – coder4show

+0

@ MaciejPyszyński आप सही हैं, इस बिंदु पर यह संभव नहीं है, क्या आप इसे उत्तर के रूप में पोस्ट कर सकते हैं, इसलिए मैं इसे स्वीकार कर सकता हूं? –

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