내지도에 대한 제약/DB 매핑을 조정 방법 : Grails의 도메인 클래스에 따라 Grails의 도메인 클래스
class MyClass {
Map myMap
}
지금에는 myMap를 들어, Grails는 자동으로지도의 요소에 대한 새 테이블을 만듭니다. 그러나 너무 긴 요소 (예 : 1,024 자)를 추가하면 DB 오류가 발생합니다.
어떻게하면 myMap의 테이블에있는 각각의 열을 더 큰 문자열을 허용 할 정도로 크게 만들 수 있을까요? 아니면 DB에서 수동으로해야합니까?
는 이미 (이 maxSize는지도 자체에지도의 값을 참조하고 안 때문에 예상대로) 작동하지 않는static constraints = {
myMap(maxSize:1024)
}
을 시도했다.
그렇지 않은 경우 제약 조건을 통해, 어쩌면
static mapping { ... }
를 통해 그것을 할 수있는 방법이?
고마워, 내가 마침내 그렇게했다. setter를 덮어 쓰려고 했으므로 Map을 매개 변수로 직접 전달할 수는 있지만 작동하지 않습니다. 예 : public void setdynaProperties (map map) {map.each {this.addToDynaProperties (name : it.key.toString(), value : it.value.toString())}}. 적어도 생성자를 사용하면 작동하지 않습니다. –
멋지 네요, 전체 솔루션이 잘 작동했기 때문에 기쁩니다. 나는 그 오류가 당신의 세터와 어떤 관계가 있었는지 궁금합니다. 필자는 형식화 된 메서드 서명을 사용하여 속성을 "가짜"로 만들려고하는 데 문제가 있다는 것을 알고 있으며 "공용"대신 "def"를 사용하면 작동하는 경향이 있다는 것을 알고 있습니다. 그러나 그것은 setter보다 getter에 더 많이 적용될 수 있습니다. –