पोस्टग्रेएसक्यूएल के तहत, मैं एसक्यूएल प्रकार अंतराल & अवधि के बीच मैपिंग के लिए PersistentDuration
का उपयोग कर रहा हूं लेकिन यह काम नहीं करता है।हाइबरनेट में अंतराल के प्रकार को कैसे मैप करें?
अन्य उपयोगकर्ता एक ही मुद्दा & अपने ही वर्ग के साथ आ पाया:
public void nullSafeSet(PreparedStatement statement, Object value, int index)
throws HibernateException, SQLException {
if (value == null) {
statement.setNull(index, Types.OTHER);
} else {
Long interval = ((Long) value).longValue();
Long hours = interval/3600;
Long minutes = (interval - (hours * 3600))/60;
Long secondes = interval - (hours * 3600) - minutes * 60;
statement.setString(index, "'"+ hours +":"
+ intervalFormat.format(minutes) + ":"
+ intervalFormat.format(secondes)+"'");
}
}
लेकिन यह वास्तविक स्वरूप के साथ काम नहीं करता है, क्योंकि यह लगता है अंतराल पैटर्न केवल "hh: mm: ss" है । देख
यहाँ कुछ कुछ वास्तविक उदाहरण मैं डेटाबेस से पार्स करने के लिए की जरूरत है::
1 day 00:29:42 00:29:42 1 week 00:29:42 1 week 2 days 00:29:42 1 month 1 week 2 days 00:29:42 1 year 00:29:42 1 decade 00:29:42
http://www.postgresql.org/docs/current/interactive/datatype-datetime.html
आप एक साफ समाधान है कि ऐसा नहीं है?
नहीं यह एक दिन.और वहाँ न केवल keywork दिन (वर्ष, माह, सप्ताह, .. लिंक ऊपर देखें) यहाँ डेटाबेस से कुछ वास्तविक उदाहरण के लिए अनिवार्य है: 2 9: 42 -00: 2 9: 42 -1 सप्ताह 00:29:42 1 सप्ताह 2 दिन 00:29:42 1 महीने 1 सप्ताह 2 दिन 00:29:42 -1 वर्ष 00:29:42 1 दशक 00:29:42 – adam