2016-04-11 3 views
0

Я работаю над переносом данных с одного db на новый в Java. Одна из моих проблем заключается в том, что я должен хранить одинаковые значения идентификаторов объектов.Hibernate - как сгенерировать идентификатор вручную?

Я знаю, что можно изменить генератор идентификаторов, но мне нужно установить идентификатор вручную. Каждый объект, который я создаю, используя карту от старого объекта к новому, и я просто устанавливаю значения. я просто не могу установить вручную что-то вроде:

Map<String, Object> newEntity = new HashMap<String, Object>() 
newEntity.setId(oldEntity.get("id")) 

ответ

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; 
} 

, и она работала. Благодаря!

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); 
0

Вы можете установить его вручную путь вы описали в своем коде.

Но вам нужно убедиться, что новое лицо знает об этом. Если вы добавляете аннотацию @Id к своему первичному ключу (no @GeneratedValue, ...), и вы убедитесь, что база данных также не автоматически генерирует идентификатор, он должен работать.

+0

Спасибо, Это проект Grails с использованием groovy и GORM Итак, какой из @GeneratedValue следует использовать? я установил частная как: \t частных строковый идентификатор , а затем: статического отображения = { \t \t таблица 'панель' \t \t листов колонок: 'dashboardId', joinTable: ложная колонка \t \t ID: 'id', generator: 'assign' \t} –

+0

@TomerKfir Я рад, что вы нашли решение. Но в решении, которое вы разместили, я бы удалил: asfsafas sfasfsaf – mahieus

Смежные вопросы