8
我在休眠中創建CompositeUserType
以將EAST
和NORTH
字段映射到座標對象。目前我的Coordinate對象是不可變的,如果可能的話我想保持這種方式。休眠複合用戶類型爲不可變對象
我寫我的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被棄用,但一兩件事的時間......)