当我试图在GORM中使用get函数检索域类对象时,我得到了StringIndexOutOfBoundsException。
域类
class Connect {
int id
long profileid
String username
char type
char superSub
String time
char class_
boolean isapilogin
static mapping = {
table "CONNECT"
version false
id column: "ID"
profileid column: "PROFILEID"
username column: "USERNAME"
type column: "TYPE"
superSub column: "SUPER_SUB"
time column: "TIME"
class_ column: "CLASS"
isapilogin column: "ISAPILOGIN"
}
static constraints = {
username maxSize: 40
type maxSize: 1
superSub maxSize: 1
time maxSize: 14
class_ maxSize: 1
}
}MYSQL数据库表
ID = int(10)未签名
PROFILEID \ bigint(20)无签名用户名\ varchar(40)
字符类型(1)
SUPER_SUB _ char(1)
时间_ varchar(14)
类别: char(1)
ISAPILOGIN ISAPILOGIN(1)
MYCONTROLLER
class DemoController {
def check() {
int id = 1001;
Connect data = Connect.get(id) // exception at this line
data.save()
render "check"
}
}MYSQL表数据
PROFILEID
1001
1002
当我调用get上的ID 1001而不是ID 1002时,就会出现异常。我认为原因是对于ID1001,类型列有一个空值或空格,而对于ID 1002,类型有一个char值‘S’,在我的表中,我有很多行有空值,那么我能做些什么来避免这个异常呢?
发布于 2016-04-30 12:17:24
我认为您应该从域类中删除"id“字段。
发布于 2016-04-30 15:15:14
确保在nullable子句中指示哪些属性是constraint。在您的示例中,属性superSub可以为null:
superSub nullable: true, maxSize: 1如果您没有在约束子句中指定可空属性,那么Grails会显式地期望为这些属性提供一个值。
https://stackoverflow.com/questions/36954780
复制相似问题