2016-04-11 8 views
0

Ich arbeite an der Datenmigration von einer Datenbank zu einer neuen Datenbank in Java. Eines meiner Probleme ist, dass ich die gleichen ID-Werte der Entitäten beibehalten muss.Hibernate - Wie ID manuell generieren?

Ich weiß, es ist möglich, den ID-Generator zu ändern, aber ich muss die ID manuell festlegen. Jede Entität, die ich mit Map vom alten Objekt zu einem neuen erzeuge, und ich setze einfach Werte. kann ich nicht setzen nur manuell so etwas wie:

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

Antwort

0

Ich habe es geschafft. In meinem Unternehmen habe ich die folgenden:

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

und es funktionierte. Vielen Dank!

0

die Werte Karte mit mapobject.keyset() meathod in der Karte und dann entsprechend die Werte verarbeiten

 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

Sie können es manuell die Art und Weise festgelegt Du hast es in deinem Code beschrieben.

Aber Sie müssen sicherstellen, dass die neue Entität das weiß. Wenn Sie nur die @Id Annotation auf Ihrem Primärschlüssel hinzufügen (nein @GeneratedValue, ...) und sicherstellen, dass die Datenbank auch keine ID generiert, sollte sie funktionieren.

+0

Danke, Dies ist ein Grails-Projekt mit groovy und GORM Also welche der @GeneratedValue sollte ich verwenden? ich den privaten als: \t private String ID und dann: statische Zuordnung = { \t \t Tabelle 'Armaturenbretts' \t \t Blätter Säule: 'dashboardId', joinTable: false \t \t ID-Spalte: 'id', Generator: 'zugewiesen' \t} –

+0

@TomerKfir Ich bin froh, dass Sie die Lösung gefunden haben. Aber in der Lösung, die Sie gepostet haben, würde ich das entfernen: asfsafas sfasfsaf – mahieus

Verwandte Themen