在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:未知列“this_.id”
我怀疑我的专栏里有名字。会是这个吗?
那怎么修呢?
谢谢。
发布于 2017-07-13 16:51:22
你在这里提供的一切看起来都很好。特别是,对于列名中的字母"id“没有任何限制。
看看您生成的MySQL表。我猜是因为某种原因id列不存在。可能是某些原因阻止了生成它,因为您现在已经更正了一些错误,或者您的数据源设置为"none“,而不是"update”(或类似的),而整个表都丢失了!
如果这只是一个没有实际数据(也没有外键约束)的开发环境,那么删除整个MyEntity表并让它自动重新创建。如果不是,移动到不同的临时数据源,让创建一个新的表,并比较这两个表。如果新的列仍然没有id列,那么在启动过程中出现了一些问题,使您的表无法正确创建。您可以手动添加列,但是如果您一开始不知道它发生了什么,那么它很可能会再次发生。
作为参考,在我的测试环境中,从示例中复制的"MyEntity“的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,''https://stackoverflow.com/questions/45074600
复制相似问题