https://stackoverflow.com/questions/1199512/grails-sqlite http://bigohno.blogspot.com/2010/01/groovy-on-grails-sqlite.html http://maven-repository.com/artifact/org.xerial/sqlite-jdbc/3.6.17
我已经能够在测试环境中工作……奇怪的是,当我“推销”我的grails应用程序并部署到tomcat时,它失败了:
找不到方言类:hibernate.sqliteDialect
这是我的设置:
在conf / hibernate中为sqliteDialect添加了一个类.这个.java是从这里获取的http://code.google.com/p/hibernate-sqlite/
然后在我的DataSource.groovy中我有:
hibernate { cache.use_second_level_cache = true cache.use_query_cache = false cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' } // environment specific settings environments { development { dataSource { // sqlite // !!!see also BuildConfig for Dependancies!!! dbCreate="update" url='jdbc:sqlite:C:\\sqlite-shell-win32-x86-3080100\\RSS_1.db' logsql="true" dialect="hibernate.sqliteDialect" driverClassName="org.sqlite.JDBC" readOnly="true" } } production { dataSource { // sqlite dbCreate="update" url="jdbc:sqlite:/opt/sqlite/dbs/RSS/1/RSS_1.db" logsql="true" dialect="hibernate.sqliteDialect" driverClassName="org.sqlite.JDBC" readOnly="true" showsql="false" } } }
在BuildConfig.groovy我有:
dependencies { runtime 'org.xerial:sqlite-jdbc:3.6.17' }
我还把.java方言类装进了lib并放入了lib中 – 有些帖子说这有帮助.我还在lib中放了sqlite-jdbc-3.7.15-M1.jar.
现在,当我在我的开发环境中运行应用程序时它运行良好…但是当我部署到tomcat时,我得到了方言错误.
对于方言的刺激环境,我需要做些什么特别的事情吗?
解决方法
从http://www.sqlite.org/download.html下载sqlite,解压缩并保存到目录.您可能还想为数据库创建目录.
从https://bitbucket.org/xerial/sqlite-jdbc下载sqlite JDBC jar并将jar放在grails lib目录中.
下载一个sqlIte方言…谷歌搜索,因为有很多,但你可以参考https://github.com/gwenn/sqlite-dialect或https://gist.github.com/virasak/54436
在grails中,在src / java中创建一个类并将你的方言代码放入.
我也把这个课打起来,然后将jar放入lib中.
设置grails数据源,例如:
dataSource { // sqlite dbCreate="update" url="jdbc:sqlite:/opt/sqlite/dbs/RSS/1/RSS_1.db" logsql="true" dialect="sqliteDialect" driverClassName="org.sqlite.JDBC" }
注意:根据您的sqlite方言类是否在包中,您可能需要在包名称前加上上面的方言(我的不是).
在BuildConfig.groovy中,向sqlite jdbc添加依赖项,如下所示:
dependencies { runtime 'org.xerial:sqlite-jdbc:3.6.17' }
这对我有用!