【发布时间】:2019-07-11 17:16:37
【问题描述】:
我正在使用脚手架为 Grails 3 中的 Oracle 12c DB 创建一个简单的 CRUD,同时为具有像这样的显式整数 ID 列的简单表:
class Config {
int id
String name
String type
String value
String description
int status
static constraints = {
/* constraints constraints constraints */
}
static mapping = {
sort 'name'
version false
id column: 'CONFIGID', name:'id', generator:'sequence', params:[sequence: 'CONFIG_SEQ']
}
}
一切正常,您可以通过列表视图中的自动生成链接以及config/<view>/<ID> 形式的显式 URL 访问给定行的脚手架视图,只要我有一个包含复合的表像这样的键:
class AliasFrequencyDict implements Serializable{
String frequency
String unit
String description
String lang
static constraints = {
/* constraints constraints constraints */
}
static mapping = {
sort 'frequency'
version false
id composite: ['frequency', 'unit', 'lang']
}
}
...您无法再访问这些行(或者我不知道如何)。脚手架不再生成指向列表视图中视图的链接,并尝试通过像 aliasFrequencyDict/show/0/D/PL 之类的 URL 访问它(这将是 /<view>/<frequency>/<unit>/<lang>,就像在复合 id 的定义中指定的那样)会导致 404。
使用复合 ID 时如何访问相关的节目、编辑等页面?
【问题讨论】:
-
这可能是脚手架的限制,我想你需要为这个特定的域生成视图并将它们修改为你的要求,docs.grails.org/latest/ref/Command%20Line/generate-views.html。文档确实声明他们不建议使用复合键。
标签: java grails grails-orm grails-3.0 grails3