在Grails,Gorm,我有这个实体:
class MyEntity implements Serializable {
Long bankTransactionId
int version
BigDecimal someValue
static constraints = {
bankTransactionId(nullable: false)
version(nullable: true)
someValue(nullable: true)
}
}
执行MyEntity.findByBankTransactionId(Long.valueOf(" 3"))会抛出此异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Unknown 专栏' this_.id'在'字段列表'
我怀疑我的列中有名称id。可能是这个吗?
如何解决呢?
感谢。
答案 0 :(得分:0)
你在这里提供的一切看起来都很好。特别是,没有限制字母" id"在列名中。
看看你生成的MySQL表。我猜是因为某种原因,id列并不存在。由于您之前已经纠正过的某些错误,或者您的数据源设置为" none"而不是"更新" (或类似的)整个表格都缺失了!
如果这只是一个没有实际数据的开发环境(并且没有外键约束),请删除整个MyEntity表并自动重新创建它。如果没有,移动到不同的临时数据源,创建一个新表,并比较两者。如果新的仍然没有id列,则在启动过程中出现问题,导致无法正确创建表。您可以手动添加该列,但如果您不知道它首先发生了什么,它可能会再次发生。
作为参考,在我的测试环境中,我的MySQL表用于" MyEntity"从您的示例中复制的内容如下:
desc my_entity;
'id','bigint(20)','NO','PRI',NULL,'auto_increment'
'version','int(11)','YES','',NULL,''
'bank_transaction_id','bigint(20)','NO','',NULL,''
'some_value','decimal(19,2)','YES','',NULL,''