gpt4 book ai didi

java - Hibernate:将 Double 作为 Int 保存到数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:04:00 25 4
gpt4 key购买 nike

有谁知道我如何创建一个在内存中存储 double 但在磁盘上存储整数的 Java POJO?

我想将这些对象作为整数存储到磁盘,因为我有 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 转换为整数(例如,通过舍入那个 double )?

感谢您的帮助!

最佳答案

希望这有效:

@Column(name = "value")
private int intValue;

@Transient
private Double value = null;

public double getValue() {
if (value == null)
value = intValue;
return value;
}

public void setValue(double value) {
this.value = value;
this.intValue = value;
}

关于java - Hibernate:将 Double 作为 Int 保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4881619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com