यहाँ से (पास्कल Thivent) वर्ग के लिए मेरी अद्यतन है::
मैं इसे नीचे पाठकों (एमिलियो डोल्से के लिए क्रेडिट) के लिए पोस्टिंग कर रहा हूँ
for (int i = 0; i < orderByNames.length; i++) {
if (orderByNames[i].trim().length() > 0) {
String orderName = orderByNames[i].trim().toLowerCase();
if (orderName.contains("desc")) {
orderByNames[i] = orderName.replace("desc", "desc NULLS LAST");
} else {
orderByNames[i] = orderName.replace("asc", "asc NULLS FIRST");
}
}
}
इस समस्या का समाधान होता :
यह टूट जाता है, तो एसक्यूएल है सीमा/द्वारा आदेश के बाद ऑफसेट - सतीश अप्रैल 1 '11 14:52
पर
भी इस तरीके से जेपीए (हाइबरनेट) के भीतर इस का उपयोग कर सकते हैं:
Session session = entityManager.unwrap(Session.class);
Session nullsSortingProperlySession = null;
try {
// perform a query guaranteeing that nulls will sort last
nullsSortingProperlySession = session.getSessionFactory().withOptions()
.interceptor(new GuaranteeNullsFirstInterceptor())
.openSession();
} finally {
// release the session, or the db connections will spiral
try {
if (nullsSortingProperlySession != null) {
nullsSortingProperlySession.close();
}
} catch (Exception e) {
logger.error("Error closing session", e);
}
}
मैं postgres पर इस परीक्षण किया है और यह ठीक करता है मुद्दा यह है कि हम कर रहे थे 'nulls गैर nulls तुलना में अधिक है' ।
सुंदर समाधान, मैंने इंटरसेप्टर के बारे में सोचा नहीं है, धन्यवाद! यदि कोई और इसका उपयोग करना चाहता है, तो आपको इस लाइन को अपनी persistence.xml फ़ाइल में जोड़ना होगा: –
mgamer
यह ब्रेक होता है यदि एसक्यूएल – Sathish
वाह द्वारा ऑर्डर के बाद सीमा/ऑफसेट है, कि हाइबरनेट जेआईआरए ** 2005 ** – atrain