0

에 INT 필드 lms.Book.bookId을 같은 도메인 클래스의 컨트롤러와 뷰를 생성하는 동안 : 말동안 : 설정할 수 없습니다 java.lang.Class의

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 to java.lang.Class

+0

내 대답은 당신의 문제가 해결 되었습니까? –

답변

1

"int"를 "정수"로 변경하십시오 (예 : "double"에서 "Double"로 변경).

class Book { 

    static constraints = { 
     bookId blank:false 
     bookTitle blank:false 
    } 

    private Integer bookId 
    private String bookTitle 
    private String author 
    private Double price 
    private Date edition 
    private String publisher 
} 

또한, 나는 당신이 정수에 "빈"제약 조건이로 변경할 수 있는지 여부를 의심 : 그게 당신이 원하는 가정

bookId nullable: false 

(또는 널 (NULL)로, 모두 제거 : 거짓 제약 조건이 암시 적 임). 내가 유 필드 선언에 '개인'에 추가하는 경우 생각

1

, u는이 분야에 대한 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 } 
.... 
} 
+0

이 답변은 정확합니다. 공개하거나 getter/setter를 직접 제공해야합니다. 왜이 답변이 표시되지 않았는지 모르십니까? – Bart