我使用 Hibernate 已经有一段时间了,这次我想在这里做一些非常规的事情。甚至不确定它的可能。
我想要做的是从单个表中加载数据,其中很少有这些列会为它们定义字段以供休息(几乎 20 左右并且可以随时间增加)所有整数,我想将它们加载到地图中。这样 Column 的名称成为键,数据成为它的值。
我正在使用 Hibernate 4.1.4 并使用注释来映射字段和列。
作为进一步澄清:表定义:
CREATE TABLE TempTable
(
id SERIAL,
revId TEXT,
type INTEGER,
group INTEGER,
col_1 INTEGER,
col_2 INTEGER,
col_3 INTEGER,
col_4 INTEGER,
col_5 INTEGER,
col_6 INTEGER,
col_7 INTEGER,
col_8 INTEGER,
col_9 INTEGER
}
DAO 模型看起来像
@Entity
@Table(name = "TempTable")
public class StatsModel {
private Long entryId;
private String revId;
private Integer type;
private Integer group;
private Map<String, Integer> metrics; // Map in which I want columns col_1 to col_9 as "Column Name" Vs. "Value"
@Id
@Column(name = "id", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
public Long getEntryId() {
return entryId;
}
public void setEntryId(Long entryId) {
this.entryId = entryId;
}
@Column(name = "tx_rev")
public String getRevId() {
return revId;
}
public void setRevId(String revId) {
this.revId= revId;
}
@Column(name = "nu_type")
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
@Column(name = "nu_group")
public Integer getGroup() {
return group;
}
public void setGroup(Integer group) {
this.group = group;
}
}