首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当列名包含"Id“时,FindBy columnName

问当列名包含"Id“时,FindBy columnName
EN

Stack Overflow用户
提问于 2017-07-13 07:53:15
回答 1查看 112关注 0票数 0

在Grails,Gorm,我有一个实体:

代码语言:javascript
复制
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”

我怀疑我的专栏里有名字。会是这个吗?

那怎么修呢?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-07-13 16:51:22

你在这里提供的一切看起来都很好。特别是,对于列名中的字母"id“没有任何限制。

看看您生成的MySQL表。我猜是因为某种原因id列不存在。可能是某些原因阻止了生成它,因为您现在已经更正了一些错误,或者您的数据源设置为"none“,而不是"update”(或类似的),而整个表都丢失了!

如果这只是一个没有实际数据(也没有外键约束)的开发环境,那么删除整个MyEntity表并让它自动重新创建。如果不是,移动到不同的临时数据源,让创建一个新的表,并比较这两个表。如果新的列仍然没有id列,那么在启动过程中出现了一些问题,使您的表无法正确创建。您可以手动添加列,但是如果您一开始不知道它发生了什么,那么它很可能会再次发生。

作为参考,在我的测试环境中,从示例中复制的"MyEntity“的MyEntity表如下所示:

代码语言:javascript
复制
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,''
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45074600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档