在Grails本地化插件documentation中,它说:



为了四处走动以使用war重新加载所有消息更新,我在BootStrap.groovy中使用以下代码。

import org.grails.plugins.localization.Localization

class BootStrap {
    def init = { servletContext ->
        Localization.reload()
    }
}

此代码确实对我有帮助,无论何时将应用程序部署到Tomcat服务器,都将应用消息更新。但是,随着部署越来越多的发行版,本地化表的ID号会自动增加。

因此,我尝试在代码中使用“截断表”来解决此问题。在BootStrap.groovy中:
import org.grails.plugins.localization.Localization

class BootStrap {
    def sessionFactory
    def init = { servletContext ->
        sessionFactory.getCurrentSession().createSQLQuery('truncate table localization').executeUpdate()
        Localization.load()
    }
}

使用此代码会导致run-app失败,因为有时truncate table会在加载过程的中间发生,而不是在加载之前!

最佳答案

您是否尝试将其作为线程执行并强制等待该过程结束?

关于grails - 如何使用Grails本地化插件在message.properties中重新加载消息更新?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29375913/

10-10 09:31