2016-04-17 7 views
0

So frage ich in letzter Zeit viel nach GORM, weil es das erste Mal ist, dass ich es benutze, und jedes Mal habe ich Probleme mit Relationen zwischen Objekten und speichere sie. Das ist also eine Klasse:GORM speichert meine hasMany-Entity nicht

class TesterUser { 

@Id 
private String id 

private String userId 

static belongsTo = Dashboard 

static constraints = { 
    userId nullable: true 
} 

static mapping = { 
    id column: 'id', generator: 'assigned' 
} 

public String getUserId() { 
    return userId; 
} 
public void setUserId(String userId) { 
    this.userId = userId; 
} 
public String getId() { 
    return id; 
} 
public void setId(String id) { 
    this.id = id; 
} 
} 

Und das ist die andere Klasse:

Klasse TestingClass {

@Id 
private String id 

private Date created 
private Date modified 

private String title 

private ClassName className 

static hasMany = [testUsers : TesterUser, sheets : Sheet] 
static belongsTo = ClassName 

static constraints = { 
    modified nullable: true 
    title nullable: true 
    className nullable: true 
} 

static mapping = { 
    sheets column:'testingClassId',joinTable: false 
    testUsers column:'testingClassId',joinTable: false 
    id column: 'id', generator: 'assigned' 
    title column: "title", length: 90000 
} 

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

public String getTitle() { 
    return title; 
} 
public void setTitle(String title) { 
    this.title = title; 
} 

public DavUser getClassName() { 
    return className; 
} 
public void setClassName(ClassName className) { 
    this.className = className; 
} 
public Date getDeleted() { 
    return deleted; 
} 
public String getId() { 
    return id; 
} 
public void setId(String id) { 
    this.id = id; 
} 
} 

ich bereits die Objekte in der DB gespeichert, aber jetzt will ich gesetzt die Beziehungen zwischen ihnen und als ich sie anrufen und speichern es nicht funktioniert:

TesterUser testU = TesterUser.findById(uId) 
TestingClass testC = TestingClass.findById(cId) 
if(testU != null && testC != null){ 
amountOfRelations++ 
testC.addToDashboardUsers(testU) 
if(!dtestC.save(flush:true, failOnError: true)){ 
amountOfUnsaved++ 
} 
else{ 
amountOfsaved++ 
} 

Aus irgendeinem Grund bekomme ich keinen Fehler. Nicht nur das, ich kann sehen, dass die Abfragen zu meinem db gehen, aber nichts passiert. Es gibt keine Aktualisierung und keinen Fehler. Ich habe keine Ahnung, warum es nicht funktioniert.

Irgendeine Idee?

+0

Sie müssen die vorherige DB leeren und Ihre Anwendung neu starten. –

+0

Wo ist 'TestingClass.ashboardUsers'? Sie haben zwei * viele * Assoziationen in 'TestingClass':' testUsers' und 'sheets'. Vielleicht müssen Sie 'testC.addToTestUsers (testU)' ausführen. –

Antwort

0

Schließlich konnte ich meine Entitäten nicht speichern. Meine 'Lösung' war, die Entität an erster Stelle mit addTo Methode zu speichern. Ich weiß immer noch nicht, warum es nicht funktioniert hat oder was ich tun musste, um meine Entität gerettet zu bekommen, aber ich habe trotzdem einen Workaround.

+0

Ich habe das gleiche Problem. Irgendeine Idee bis jetzt? –