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?
Sie müssen die vorherige DB leeren und Ihre Anwendung neu starten. –
Wo ist 'TestingClass.ashboardUsers'? Sie haben zwei * viele * Assoziationen in 'TestingClass':' testUsers' und 'sheets'. Vielleicht müssen Sie 'testC.addToTestUsers (testU)' ausführen. –