| 

.NET C# Java Javascript Exception

domain class problem

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


domain class problem

cd311 - 22.08.2008 11:58
hi

ich hab ein kleines domain class problem das die zuordnung in der datenbank verhaut. vielleicht kann mir hier jemand helfen.

ich hab 3 klassen C, A und B die wie folgt definiert sein.

class C {

    String name
    B b
    A a
    static hasMany = [s:A,
                      subC:C]
    static belongsTo = [parentC:C]
    
    String toString(){"${this.name}"}

    static constraints = {
                name(blank:false)
                parentC(nullable: true)
                subC(nullable: true)

                b(blank:false)
                a(blank:false)
                s(nullable:true)
          
    } 

}

class A {

    String name
    C c
    

    String toString(){"${this.name}"}
    

    static constraints = {
          name(blank:false, unique:true)
          c(blank:false, unique:true)
        
   }


}

class B {


    String name
    static hasMany = [subB:B, 
                      c:C]
    static belongsTo = [parentB:B];
     
    String toString(){"${this.name}"}
    
    static constraints = {
                subB(nullable: true)
                c(blank:false)
                parentB(nullable:true)
    } 

}

objekt C kann also einen parent (parentC) haben und mehrer subobjekte (subC). außerdem muss es ein objekt vom der klasse A haben (a) und kann weitere Objekte von der klasse A haben (s).
objekt A hat wiederum ein eigenes objekt von der klasse C.
objekt B kann ähnlich wie einen parent haben (parentB) und mehrere subobjekte (subB). außerdem muss es mindestens ein objekt von C (c) haben.

im bootstrap lege ich dann folgende struktur an

def rootB = new B(name:'rootB')
def rootA = new A(name:'rootA')
def rootC = new C(name:'rootC',b:rootB,a:rootA)                                 

rootA.c=rootC
rootC.b=rootB
rootB.c=[rootC]

rootB.save()
rootA.save()
rootC.save()

def childB = new B(name:'childB')
def childC = new C(name:'childC',b:childB,a:rootA)

childB.c = [childC]
childB.save()

rootC.subC=[childC]
childC.parentC=rootC

rootC.save()
childC.save()

dies legt einen rootC an der als subC childC hat und im childC wird rootC als parentC eingetragen.
soweit so gut nur ist jetzt erstens rootA.c mit childC belegt obwohl ich das nirgends gesetzt habe und eigentlich dort rootC drinstehen müsste (siehe das bootstrap zeile 5) und um childC tauch auf einmal childC.s mit rootA belegt ein. die s habe ich nichtmal angefasst. rootA.s ist, wie richtig zu erwarten, immernoch leer. die sonstigen zuordnungne macht grails alls wunderbar.
vielleicht kann mir hier jemand sagen was ich falsch mache.

danke
cd311


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "domain class problem" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.