我有一个网络服务,每天从各种来源获取大约 9GB 的原始文本数据。其中绝大多数是相对较短(100-300)的字符串,这些字符串经常重复。我可能只有几千个独特的字符串
我通常不想预先优化,但我们的存储问题很快就会成为开发中的一个问题。
我有一个 JPA 实体,为了这篇文章,我会进行简化。这是映射到父表的字符串/id 对。
@Entity
public class DeduplicatedString implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
private String value;
public DeduplicatedString() {
super();
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
我想设置一个 JPA 侦听器(beforeInsert?)以在添加新字符串时检查现有数据,如果已经找到完全匹配,则返回现有记录。
我通常只是设置一个插入触发器,并且不太确定如何在 JPA 中执行此操作。
谢谢!