所以当我试图运行我的Grails应用程序时,我一直收到主题行错误。下面是我的两个域类,它们似乎是导致错误的原因。
在线订购:
package rewards
class OnlineOrder {
Date orderDate
Integer orderNumber
Float orderTotal
static belongsTo = [customer:Customer]
static hasMany = [orderItems:OrderItem]
static constraints = {
}
}
订单项:
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在同一目录中创建,非常简单。
有什么建议吗?
5条答案
按热度按时间wz1wpwve1#
我也有同样的问题,但没有任何意义。
我的解决方案已运行
然后再次运行该项目
如果您的项目使用迁移,建议您将数据库置于稳定状态,然后运行以下命令:
jmp7cifd2#
我在应用程序中遇到了类似的问题,通过从目标文件夹中分离类文件并重新运行应用程序,同样的问题得到了解决。这个错误通常是因为我在域中更改了属性名称,并在数据库中创建了新的db列。
问候你,拉乌夫
mqxuamgl3#
当我们直接从IDE运行Starter Class时,我们遇到了类似的问题。在更改域类之后,IntelliJ执行了make,但没有将所有Grails/GORM注解都放入字节码中。则GrasAutoConfiguration不会在scanUsingPattern中加载伪像。
使用javap查看您的域的字节码。
对于我们这些运行Grails的人来说,Run-app似乎要好得多。
50few1ms4#
我知道这是一个老线程,但当我向对象添加集合时,我在Grails应用程序中遇到了同样的问题。
发生的事情是,我使用IntelliJ从小建议修复选项中自动创建了groovy类。我没有意识到这一点,但它在init下创建了新类,而不是域。在我将它移到域类之后,一切都很顺利。
anauzrmj5#
尝试:
并且请使用BigDecimal而不是Float。