2016-05-08 4 views
4

Так что я продолжаю получать ошибку строки темы при попытке запустить приложение grails. Вот мои два класса домена, которые, по-видимому, являются причиной ошибки.Grails Отсутствует тип или столбец для столбца [order_items_order_item] в домене [rewards.OnlineOrder], ссылающийся на [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 = { 
    } 
} 

Ошибка гласит: Caused by: org.hibernate.MappingException: Missing type or column for column[order_items_order_item] on domain[rewards.OnlineOrder] referencing[rewards.OrderItem]

Похоже, это говорит, что я не определен OrderItem еще и я ссылаться на него как ребенок в моем домене OnlineOrder. Но я не могу понять, почему это вызывает ошибку. Класс OrderItem создается в том же каталоге, что и OnlineOrder, и достаточно прост.

Любые предложения?

+1

ли вы когда-нибудь решить эту проблему таким образом, что может быть генерализованной? Я столкнулся с почти той же проблемой, используя Grails 3.x. –

ответ

-1

Try:

package rewards 

class OrderItem { 

    Integer qty 
    Float total 
    OnlineOrder onlineOrder 
    Product product 

    static belongsTo = [OnlineOrder, Product] 

    static constraints = { 
    } 
} 

И, пожалуйста, используйте BigDecimal вместо Float.

0

Мы столкнулись с аналогичной проблемой при запуске класса стартеров непосредственно из среды IDE. После изменения класса домена IntelliJ сделал make, но не поместил все аннотации Grails/Gorm в байт-код. Тогда GrailsAutoConfiguration не загружает Artefact в scanUsingPattern.

Используйте javap, чтобы увидеть байт-код ваших доменов.

Для нас бег grails run-app выглядит намного лучше.

0

У меня была аналогичная проблема в приложении, то же самое было устранено путем исключения файла класса из целевой папки и повторного запуска приложения. эта ошибка возникает из-за того, что я изменил имя свойства в моем domin и создал новую базу db в базе данных.

С уважением, Рауф

+0

Я не знаю, почему, но это случается со мной, это не имеет никакого смысла. Иногда я чувствую, что это просто багги. –