Grails设计用于从静态数据初始化域类

Grails设计用于从静态数据初始化域类,grails,dns,bootstrapping,Grails,Dns,Bootstrapping,我有一些数据,stateNames,用来实例化目标国家的一个实例。现在,我只有一个国家,但每个国家的州名应该不同。用我的数据实例化Country实例的最佳方法是什么?我是grails的新手,如果有任何“最佳实践”或通用设计,我将不胜感激 我能想到的一个解决方案是使用BootStrap将Country的美国实例保存到数据库中。这种方法的缺点是什么 另一个解决方案是将数据保存在web app文件夹下的一个文件(xml?)中。如果我采用这种方法,那么控制器是否应该实例化Country的unitedSt

我有一些数据,stateNames,用来实例化目标国家的一个实例。现在,我只有一个国家,但每个国家的州名应该不同。用我的数据实例化Country实例的最佳方法是什么?我是grails的新手,如果有任何“最佳实践”或通用设计,我将不胜感激

我能想到的一个解决方案是使用BootStrap将Country的美国实例保存到数据库中。这种方法的缺点是什么


另一个解决方案是将数据保存在web app文件夹下的一个文件(xml?)中。如果我采用这种方法,那么控制器是否应该实例化Country的unitedStates实例?

编写一个接受输入并持久化到DB中的服务,并从任何地方调用它,根据您的要求,可以是引导或控制器。引导是进行繁重工作的好方法。

编写一个接受输入并持久化到数据库中的服务,并从任何地方调用它,根据您的要求,可以是引导或控制器。引导是进行繁重工作的好方法。

项目的目标应该是在签出代码后在开发模式下运行,而无需任何设置。考虑到这一点,
BootStrap.groovy
是使用最少的数据集(如用户帐户或国家名称等静态数据)初始化数据库的好地方

一种常见的模式是检查一些已知的实例(如管理员用户帐户),如果没有,则插入最小的数据集。例如:

class BootStrap {

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

项目的目标应该是在签出代码后在开发模式下运行,而不进行任何设置。考虑到这一点,
BootStrap.groovy
是使用最少的数据集(如用户帐户或国家名称等静态数据)初始化数据库的好地方

一种常见的模式是检查一些已知的实例(如管理员用户帐户),如果没有,则插入最小的数据集。例如:

class BootStrap {

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

你说的服务“持久化到DB”是什么意思?我说的是ataylor建议的静态数据初始化。你说的服务“持久化到DB”是什么意思?我说的是ataylor建议的静态数据初始化。这就是我得到的。太好了,这就是我得到的。