2012-12-18 3 views
1

나는 country라는 객체의 인스턴스를 인스턴스화하기 위해 stateNames라는 데이터를 가지고있다. 지금은 하나의 국가 만 갖지만 각 국가의 stateNames는 달라야합니다. 내 데이터로 국가 인스턴스를 인스턴스화하는 가장 좋은 방법은 무엇입니까? 나는 grails에 익숙하지 않고 "모범 사례"또는 일반적인 디자인을 고맙게 생각합니다.정적 데이터로부터 도메인 클래스 초기화를위한 Grails 디자인

내가 생각할 수있는 한 가지 해결책은 BootStrap을 사용하여 Country의 unitedStates 인스턴스를 데이터베이스에 저장하는 것입니다. 이 접근 방식의 단점은 무엇입니까?

또 다른 해결책은 web-app 폴더 아래의 파일 (xml?)에 데이터를 저장하는 것입니다. 이 접근법을 사용하면 국가의 unitedStates 인스턴스가 컨트롤러에 의해 인스턴스화되어야합니까?

답변

1

프로젝트는 코드를 체크 아웃 한 후 설정없이 개발 모드로 실행해야합니다. 이를 염두에두고 BootStrap.groovy은 사용자 계정이나 국가 이름과 같은 정적 데이터와 같이 최소한의 데이터 집합으로 데이터베이스를 초기화하기에 좋습니다.

일반적인 패턴은 알려진 사용자 인스턴스 (예 : 관리자 사용자 계정)를 확인하고 부재중 인 경우 최소 데이터 세트를 삽입하는 것입니다. 예 :

class BootStrap { 

    def init = { servletContext -> 
     def admin = User.findByUsername('admin') 
     if (!admin) { 
      // initialize the database by inserting a minimal data set 
     } 
    } 
} 
+0

그게 내가 가진거야. – Alison

0

입력을 받아들이고 DB에 지속되는 서비스를 작성하고 요구 사항에 따라 부트 스트랩 또는 컨트롤러가 될 수 있습니다. 부트 스트랩은 무거운 짐을 싣기위한 좋은 방법입니다.

+0

"DB에 지속되는 서비스"란 무엇입니까? – Alison

+0

나는 ataylor가 제안한 바와 같이 정적 데이터의 초기화에 대해 말하고 있었다. – Akhilesh

관련 문제