我有急症室图。我试着像grails域那样描述它,但在启动项目之后,只有部分表存在(创建)。我找不到我在哪个地方犯了错。
class Song {
static hasMany = [audios: Audio, tags: Tag]
BigInteger id
String title
String chorus
Boolean chorusRepeat
Date created
Date updated
static constraints = {
tags joinTable:[name:'song_tag', key:'song_id']
}
}
class Tag {
static belongsTo = Song
static hasMany = [songs: Song]
BigInteger id
String name
static constraints = {
songs joinTable:[name: 'song_tag', key: 'tag_id']
}
}
class Couplet {
static belongsTo = Song
BigInteger id
String text
Song song
static constraints = {
}
}
class Audio {
static belongsTo = Song
BigInteger id
String audio
String type
Date created
Date updated
Song song
static constraints = {
}
}
控制台输出
2015-02-01 14:20:36,007[localhost-startStop-1]错误hbm2ddl.schemaexport-hhh000389:失败:创建表对(id decimal(19,2)不为空,版本bigint不为空,song_id decimal(19,2)不为空,text varchar(255)不为空,主键(id))Engine=InnoDB错误2015-02-01 14:20:36,007[localhost-startStop-1]错误hbm2ddl.schemaexport-列“id”的列说明符不正确
谢谢你
有两件事必须改变
1)
static constraints = {
songs joinTable:[name: 'song_tag', key: 'tag_id']
}
它应该在映射闭包中,而不是在约束闭包中
static mapping = { songs joinTable:[name: 'song_tag', key: 'tag_id']}
2)只需从域中删除id字段,GORM就会自动创建id字段。
问题内容: 我正在尝试根据创建记录的日期为每个记录创建唯一的ID。例如,如果今天创建记录,我希望键为20101130XX,其中XX是数字的顺序列表,例如01、02、03等…以防今天有多个人创建记录。 如果昨天有3个人创建了记录,则其唯一ID为 2011032700 2011032701 2011032702 然后午夜到了,有人创建了一个新记录 2011032800 这样做的目的是给每个记录一个唯一
Class类提供很多方法用于获取类的各种信息,比如获取类名、判断该类是否是一个接口还是普通类等等。在Java中枚举类是一种类,而注解是一个接口,数组也是一个类;Java原始类型(boolean, byte, char, short, int, long, float, and double)和关键字void也被表示为Class的对象。
找到了以下场景的部分答案,但需要进一步澄清。 有下列情况: 用java编写的域类 我想做的事情: 创建一个grails应用程序,它可以执行以下操作: 使用java域类作为grails域类 通过GORM将java域类映射到DB 能够从groovy域类创建java域类,以便能够将其发送到java服务器进行处理,然后接收java类响应并将其转换为groovy类,以便使用GORM存储在DB中映射 基本上有
问题内容: Oracle是否具有内置功能来根据其各个组成部分(年,月和日)创建仅对缺失数据返回null的日期? 我知道,但是我需要首先编写一个字符串,并且运算符和函数都无法轻松处理丢失的数据: 只要是我们最终和: 问题答案: 例如,您可以使用: 不幸的是,Oracle没有一种方法(如果可能)进行转换,否则将返回NULL。SQL Server最近为此目的而引入。 一种选择是为失败的转换编写带有异常处
根据给定的键值对创建一个对象。 使用 Array.reduce() 来创建和组合键值对。 const objectFromPairs = arr => arr.reduce((a, v) => ((a[v[0]] = v[1]), a), {}); objectFromPairs([['a', 1], ['b', 2]]); // {a: 1, b: 2}
问题内容: 对于我的应用程序,我需要在运行时进行动态数据库连接。我知道,有多种方法可以创建多个数据源,但我认为它们并不是那么动态。设想: 用户可以输入数据库凭据并连接到远程数据库,以将单个行和表导入另一个数据库。为此,我需要动态连接到远程数据库。 我试图在服务中做到这一点,就像他们在“如果在grails中使用groovy sql类”中 所说的那样,它是否使用grails连接池? 注意:在这种情况下