gss*_*der 9 mysql joomla grails map grails-orm
我正在尝试使用GORM和Grails 2.0映射Joomla MySQL数据库(的一小部分).
我正在阅读一本关于论证的书(Grails)并在网上搜索技术文章,但我仍然需要一个很好的参考来将Groovy/Java类型映射到MySQL字段.
我从一张简单的桌子开始jos_bannerclient.
class BannerClient {
String name
String contact
String email
String notes
String editor = ''
static constraints = {
name(blank:false)
contact(nullable:true)
email(nullable:true)
notes(nullable:true)
editor(nullable:true)
}
static mapping = {
datasource 'joomla'
table 'jos_bannerclient'
id column:'cid', type:'int'
notes column:'extrainfo', type:'text'
version false
}
}
Run Code Online (Sandbox Code Playgroud)
此时记录是在数据库中生成的,但如果我保存域,failOnError:true我会收到此错误:java.lang.IllegalArgumentException.
我在映射checked_out TINYINT字段时遇到了问题.GORM验证该字段的唯一方法是将其声明为Boolean,为什么它不起作用Byte?
我对如何映射MySQL TIME字段也有一些疑问checked_out_time.
我还阅读了Hibernate文档的一些部分,但仍然没有获得完成此任务所需的知识!
有人可以帮忙吗?
您指示“类型”,但应该指示“sqlType”,这就是为什么我相信您遇到 TINYINT 问题并且必须使用布尔值而不是字节的原因。默认情况下,Id 是一个 int (实际上是 bigint),但它不会向您抱怨,除非您使用 dbCreate = "validate" 并且其他值是字符串,因此不一定会给您带来兼容性问题笔记。
static mapping = {
datasource 'joomla'
table 'jos_bannerclient'
id column:'cid', sqlType:'int'
notes column:'extrainfo', sqlType:'text'
version false
}
Run Code Online (Sandbox Code Playgroud)
至于 TIME 问题,我已经能够毫无问题地指定 TIMESTAMP 类型,所以我可以想象 TIME 也能正常工作。应支持所有 SQL 类型。例如:
static mapping = {
dateCreated sqlType: 'TIMESTAMP', defaultValue: 'CURRENT_TIMESTAMP'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |