2016-05-08 7 views
4

So bekomme ich immer den Betreffzeilenfehler, wenn ich versuche, meine Grails App zu starten. Hier sind meine zwei Domänenklassen, die die Ursache des Fehlers zu sein scheinen.Grails Fehlender Typ oder Spalte für Spalte [order_items_order_item] auf domain [rewards.OnlineOrder] referenziert [rewards.OrderItem]

OnlineOrder:

package rewards 

class OnlineOrder { 

    Date orderDate 
    Integer orderNumber 
    Float orderTotal 

    static belongsTo = [customer:Customer] 
    static hasMany = [orderItems:OrderItem] 

    static constraints = { 
    } 
} 

OrderItem:

package rewards 

class OrderItem { 

    Integer qty 
    Float total 

    static belongsTo = [orders:OnlineOrder, product:Product] 

    static constraints = { 
    } 
} 

Fehler liest wie: Caused by: org.hibernate.MappingException: Missing type or column for column[order_items_order_item] on domain[rewards.OnlineOrder] referencing[rewards.OrderItem]

Es sieht aus wie es ist, dass ich OrderItem noch nicht definiert haben, und ich bin Referenzierung es als Kind in meiner OnlineOrder-Domain. Aber ich kann nicht herausfinden, warum das einen Fehler verursacht. Die OrderItem-Klasse wird im selben Verzeichnis wie OnlineOrder erstellt und ist ziemlich einfach.

Irgendwelche Vorschläge?

+1

Haben Sie schon einmal in einer Art und Weise lösen diese, die verallgemeinert werden können? Ich stoße mit Grails 3.x auf fast das gleiche Problem. –

Antwort

-1

Versuchen:

package rewards 

class OrderItem { 

    Integer qty 
    Float total 
    OnlineOrder onlineOrder 
    Product product 

    static belongsTo = [OnlineOrder, Product] 

    static constraints = { 
    } 
} 

Und bitte verwenden BigDecimal statt Float.

0

Wir hatten ein ähnliches Problem, als wir die Starter-Klasse direkt von der IDE aus starteten. Nach einem Wechsel zu einer Domain-Klasse hat IntelliJ eine make gemacht, aber nicht alle Grails/Gorm-Annotationen in den Bytecode eingefügt. Dann lädt GrailsAutoConfiguration das Artefakt nicht in scanUsingPattern.

Verwenden Sie javap, um den Bytecode Ihrer Domänen zu sehen.

Für uns läuft ral-app scheint viel besser.

0

Ich hatte ähnliches Problem in der Anwendung das gleiche wurde gelöst, indem Sie die Klassendatei aus dem Zielordner erkennen und die Anwendung erneut ausführen. Dieser Fehler tritt normalerweise auf, weil ich einen Eigenschaftsnamen in meinem domin geändert hatte und eine neue db colum in der Datenbank erstellt hatte.

Grüßen, Raouf

+0

Ich weiß nicht warum, aber das passiert mir, es ergibt keinen Sinn. Manchmal habe ich das Gefühl, es ist einfach fehlerhaft. –

Verwandte Themen