沒有人知道如何創建一個Java POJO,它在內存中存儲雙精度數據,但在磁盤上使用整數?休眠:將Double Double保存到數據庫中作爲Int
我想將這些對象作爲整數存儲到磁盤上,因爲我有1億個,這樣可以節省空間。但是,有時我的Java代碼操縱在存儲器中的值(而不保存),並把它們轉化成實數
我已經試過類似:
@Entity
@Table(name = "POJO")
public class POJO {
@Id
@GeneratedValue
@Column(name = "id")
int id;
@Column(name = "value")
int valueInteger; // this is weird: in the database, we want to use integers, to save space. but in memory, sometimes we use real values
double value;
public int getValueInteger() {
return valueInteger;
}
public void setValueInteger(int valueInteger) {
this.valueInteger = valueInteger;
this.value = valueInteger;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
// might want to call setValueInteger() here if consistency is required. Right now, I think it's not, so I'll leave it out.
}
}
這不是一個可怕的解決方案,除了內存佔用比需要的大。有沒有辦法讓POJO只有一個double(和當然的ID),並指示hibernate在存儲到數據庫時強制執行double到integer的轉換(例如,通過四捨五入)?
感謝您的幫助!
謝謝!這絕對是一種選擇,我沒有想到這一點。 – iloveponies 2011-02-03 01:37:50