Tôi đang tạo một CompositeUserType
trong chế độ ngủ đông để ánh xạ các trường EAST
và NORTH
cho đối tượng Tọa độ. Hiện tại đối tượng Tọa độ của tôi là không thay đổi và tôi muốn giữ nó theo cách đó nếu có thể.Hibernate CompositeUserType cho đối tượng bất biến
Tôi đã viết tôi nullSafeGet
, kéo các tọa độ từ ResultSet và kêu gọi các nhà xây dựng:
@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);
}
Tôi không biết phải làm gì với setPropertyValue
, mà dường như muốn thiết lập các coords một lúc một thời gian. Có thể khởi tạo một đối tượng bất biến với CompositeUserType
hoặc tôi đang cố gắng làm điều không thể?
(Cũng cố gắng để tìm ra những việc cần làm về Hibernate.INTEGER bị phản đối, nhưng có một điều tại một thời điểm ...)