Hibernate - 如何手动生成 id?
Hibernate - how to generate id manually?
我正在 Java 中将数据从一个数据库迁移到一个新数据库。
我的问题之一是我必须保持实体的相同 id 值。
我知道可以更改 ID 生成器,但我需要手动设置 ID。
我使用 Map 从旧对象到新对象创建的每个实体,我只是设置值。
我不能手动设置类似的东西吗:
Map<String, Object> newEntity = new HashMap<String, Object>()
newEntity.setId(oldEntity.get("id"))
使用 map 中的 mapobject.keyset() 方法映射值,然后相应地处理这些值
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);
您可以按照您在代码中描述的方式手动设置它。
但是你需要确保新实体知道这一点。
如果您只在主键上添加 @Id 注释(没有 @GeneratedValue,...)并且您确保数据库也不会自动生成它应该可以工作的 ID。
我成功了。
在我的实体中,我设置了以下内容:
@Id
private String id
private Date created
private Date modified
static mapping = {
id column: 'id', generator: 'assigned'
}
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;
}
它奏效了。谢谢!
我正在 Java 中将数据从一个数据库迁移到一个新数据库。 我的问题之一是我必须保持实体的相同 id 值。
我知道可以更改 ID 生成器,但我需要手动设置 ID。 我使用 Map 从旧对象到新对象创建的每个实体,我只是设置值。 我不能手动设置类似的东西吗:
Map<String, Object> newEntity = new HashMap<String, Object>()
newEntity.setId(oldEntity.get("id"))
使用 map 中的 mapobject.keyset() 方法映射值,然后相应地处理这些值
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);
您可以按照您在代码中描述的方式手动设置它。
但是你需要确保新实体知道这一点。 如果您只在主键上添加 @Id 注释(没有 @GeneratedValue,...)并且您确保数据库也不会自动生成它应该可以工作的 ID。
我成功了。 在我的实体中,我设置了以下内容:
@Id
private String id
private Date created
private Date modified
static mapping = {
id column: 'id', generator: 'assigned'
}
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;
}
它奏效了。谢谢!