Grails 生成控制器和视图时出错:无法将int字段lms.Book.bookId设置为java.lang.Class
为域类生成控制器和视图时,如下所示:Grails 生成控制器和视图时出错:无法将int字段lms.Book.bookId设置为java.lang.Class,grails,grails-domain-class,grails-2.0,grails-controller,Grails,Grails Domain Class,Grails 2.0,Grails Controller,为域类生成控制器和视图时,如下所示: class Book { static constraints = { bookId blank:false bookTitle blank:false } private int bookId private String bookTitle private String author private double price private Date editio
class Book {
static constraints = {
bookId blank:false
bookTitle blank:false
}
private int bookId
private String bookTitle
private String author
private double price
private Date edition
private String publisher
}
给出错误说明:
无法将int字段lms.Book.bookId设置为java.lang.Class将“int”更改为“Integer”(也将“double”更改为“double”),例如
此外,我怀疑您是否可以对整数设置“空白”约束,请将其更改为:
bookId nullable: false
假设这是您想要的(或者完全删除它,因为nullable:false约束是隐式的)。我认为如果您在字段声明中添加“private”,您必须为此字段编写getter和setter:
class Book {
static constraints = {
bookId blank:false
bookTitle blank:false
}
private Integer bookId
...
Integer getBookId() { this.bookId }
void setBookId(Integer bookId) { this.bookId = bookId }
....
}
我的答案解决了你的问题吗?这个答案是正确的。您必须将它们声明为公共的或自己提供getter/setter。不知道为什么这个答案没有标记?
class Book {
static constraints = {
bookId blank:false
bookTitle blank:false
}
private Integer bookId
...
Integer getBookId() { this.bookId }
void setBookId(Integer bookId) { this.bookId = bookId }
....
}