我正在使用Java从一个数据库迁移到一个新数据库。 我的一个问题是我必须保持实体的相同id值。
我知道可以更改id生成器,但我需要手动设置id。 我使用从旧对象到新对象的Map创建的每个实体,我只是设置值。 我不能手动设置类似的东西:
Map<String, Object> newEntity = new HashMap<String, Object>()
newEntity.setId(oldEntity.get("id"))
答案 0 :(得分:0)
使用地图中的mapobject.keyset()meathod映射值,然后相应地处理值
HashMap newmap = new HashMap();
// populate hash map here you can assign your map values
newmap.put(1, "tutorials");
newmap.put(2, "point");
newmap.put(3, "is best");
// get keyset value from map
Set keyset=newmap.keySet();
// check key set values
System.out.println("Key set values are: " + keyset);
答案 1 :(得分:0)
您可以按照代码中描述的方式手动设置。
但是你需要确保新实体知道这一点。 如果你只在你的主键上添加@Id注释(没有@GeneratedValue,...),你确保数据库也没有自动生成一个id它应该有用。
答案 2 :(得分:0)
我成功地做到了。 在我的实体中,我设置了以下内容:
@Id
private String id
private Date created
private Date modified
static mapping = {
id column: 'id', generator: 'assigned'
}
asfsafas
sfasfsaf
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public Date getModified() {
return modified;
}
public void setModified(Date modified) {
this.modified = modified;
}
它有效。谢谢!