2011-02-08 11 views
8

मैं EAST और NORTH फ़ील्ड को कोऑर्डिनेट ऑब्जेक्ट पर मैप करने के लिए हाइबरनेट में CompositeUserType बना रहा हूं। वर्तमान में मेरी समन्वय वस्तु अपरिवर्तनीय है, और यदि संभव हो तो मैं इसे इस तरह से रखना चाहूंगा।अपरिवर्तनीय ऑब्जेक्ट के लिए हाइबरनेट कंपोजिट यूज़र टाइप

मैं लिखा है मेरी nullSafeGet, ResultSet से निर्देशांक खींच रहा है और निर्माता बुला:

@Override 
public Object nullSafeGet(ResultSet rs, String[] names, 
      SessionImplementor session, Object owner) 
      throws HibernateException, SQLException { 
    Integer easting = (Integer)Hibernate.INTEGER.nullSafeGet(rs, names[0]); 
    Integer northing = (Integer)Hibernate.INTEGER.nullSafeGet(rs, names[1]); 
    if(easting==null || northing==null) 
     return null; 
    return new Coordinate(easting, northing); 
} 

मैं क्या setPropertyValue, पर coords एक सेट करना चाहते हैं लगता है जो के साथ क्या करना नहीं जानते एक वक़्त। CompositeUserType के साथ एक अपरिवर्तनीय वस्तु को तुरंत चालू करना संभव है, या मैं असंभव करने की कोशिश कर रहा हूं?

(इसके अलावा बाहर काम करने के लिए एक समय में एक बात Hibernate.INTEGER बारे में क्या करना समाप्त किया जा रहा है, लेकिन कोशिश कर रहा ...)

उत्तर

11

setPropertyValue(), अगर isMutable() रिटर्न false कभी नहीं कहा जाता है, तो आप इसे से UnsupportedOperationException फेंक कर सकते हैं ।

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