我是 Grails 的新手,一点一点地学习,但我真的很挣扎。
好的,所以我正在尝试从 Grails 中的一个类中呈现数据。它将数据存储在 mySQL 数据库中。当我们在类中有一个名为“id”的整数参数时,一切正常,但我们发现 Grails 会自动在数据库表中分配一个“id”行,因此我们将其删除。现在,当我在 gsp 中运行此代码时:
<g:each in="${Proposal.where {id == 1} }" var="proposal">
<h3>
${proposal.name}
</h3>
<p>
Starting date: <g:formatDate format="dd.MM.yyyy" date="${proposal.date_started}" />
</p>
<p>
ending date:: <g:formatDate format="dd.MM.yyyy" date="${proposal.date_ended}" />
</p>
<p>
description: ${ proposal.description }
</p>
</g:each>
'id == 1' 部分只是为了获取一些虚拟数据,我确保数据库中有一行 id 为 1。稍后将更改为采用输入参数,以显示动态详情页面。
当我尝试导航到此页面时,我收到此错误:
URI /site/proposal/
Class java.lang.ClassCastException
消息 java.lang.Integer 无法转换为 java.lang.Long
堆栈跟踪似乎只是告诉我发生这种情况的位置,将我指向上述代码的位置。数据库表有一个名为“id”的列,它是一个 bigint。Grails 不应该能够处理这种数据类型不匹配吗?无论哪种方式,不是 Integer 类的 long 和 bigint 子集吗?
我是否试图以向后的方式列出数据?有没有更好的标签可以使用?我很困惑,需要一杯茶。