NHibernate معايير.قائمة() توقف عندما كسول الخاصية موجودة على الكيان

StackOverflow https://stackoverflow.com/questions/1039594

سؤال

لقد تم الحصول على بعض للغاية سلوك غريب حيث NHibernate الاستفسارات البدء في تعليق.لقد قدم المشروع التجريبي الذي يسلك هذا السلوك في للتكرار الموضة.

يمكنك تحميل المشروع هنا

وهنا المخالف كود:

    public IList<Post> GetLatestLiveBlogEntries(int numEntriesToRetrieve)
    {
        var maxDate = DateTime.Now;

        using (var session = SessionManager.OpenSession())
        {
            var crit = session.CreateCriteria(typeof (Post))
                .Add(Restrictions.Eq("Enabled", true))
                .Add(Restrictions.Lt("postDate", maxDate))
                .AddOrder(new Order("postDate", false))
                //.SetFetchMode("author", FetchMode.Eager) // <-- the exclusion of this line breaks everything!
                .SetMaxResults(numEntriesToRetrieve);

            StupidFileLogger.Log("If this is the last log, I'm hanging on crit.List<Post>()");
            var listOfPosts = crit.List<Post>();
            StupidFileLogger.Log("I actually was able to retrieve the posts");
            return listOfPosts;
        }
    }

مفتاح خط .SetFetchMode على الحقل "المؤلف".على أول شحنة من مشروع تجريبي تحميل بخير.عندما ضرب تحديث, توقف و لم يحصل في الماضي الحرجة.قائمة() المكالمة.مع حريصة التحميل يعمل في كل مرة.

أنا باستخدام القلعة.مرافق.NHibernateIntegration.مكونات.SessionWebModule لضمان 1 الدورة في الطلب.

آخر شئ غريب وجدته هو أن هذا يحدث فقط مع SQL Server.عند استخدام سكليتي كل شيء يعمل بشكل جيد.في مشروع تجريبي لدي بسيط بناء العلم الذي يسمح لك للتبديل db بسهولة.مجرد إلقاء نظرة على local.properties.xml في /بناء الدليل.

أنا أفهم أن حريصة تحميل يحل مشكلتي في هذه الحالة بالذات ، ولكن في طلبي أنا لا أريد أن يكون حريصة تحميل كل شيء.

يرجى تحميل الحل في محاولة لنفسك.لقد حاولت ذلك على الأجهزة الأخرى و هم يفعلون نفس الشيء.

وهنا بعض منشئ ملفات التعريف SQL يلتقط.يمكنك أن ترى أن الاستعلام عن المشاركات التي تم إرسالها إلى الخادم ، ولكن ذلك يتوقف هناك:

أول طلب (تتصرف كما هو متوقع):

حسن طلب http://muc-central.com/misc/good_request.jpg

الطلب الثاني (توقف):

النص البديل http://muc-central.com/misc/hanging_request.jpg

هل كانت مفيدة؟

المحلول 2

أنا ثابت على تعليق من التحول إلى LinFu proxyfactory.factory_class.ليس لدي فكرة لماذا يعمل هذا وقلعة لا.سوف تتعلم المزيد عن وكلاء الديناميكي و معرفة لأي نوع من الخلل التقرير يجب أن تقدم.

نصائح أخرى

أعتقد هذا يعمل على نظام التشغيل windows server لذلك أنا لا أعرف ما يعادل htop ولكن أراهن أن هناك مأزق في مكان ما في قاعدة البيانات/الدورة رمز يجب أن تكون قادرة على التحقق من موضوع الدولة لمعرفة ما إذا كل الموضوع هو في حالة انتظار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top