我可以在groovy中使用不同的权限拥有2个不同的数据源

时间:2011-11-16 22:46:25

标签: grails groovy datasource

我想知道我们是否可以在Grails应用程序中配置2个数据源,我希望其中一个具有只读访问权限(select),另一个具有读写访问权限(创建,插入,更新...)

2 个答案:

答案 0 :(得分:4)

对于2.0之前的应用,请使用http://grails.org/plugin/datasources/,并将其内置到Grails中 - 请参阅http://grails.org/doc/2.0.0.RC1/guide/conf.html#multipleDatasources上的文档

答案 1 :(得分:1)

是的,你可以 - 根据我的经验 - 你应该注意一些条件/限制。

  1. 知道这个: Grails 2 can't login with spring security when using multiple databases

  2. 文档http://grails.org/doc/2.0.0.RC1/guide/conf.html#multipleDatasources表示您可以通过域映射或使用服务和静态“数据源”属性在数据源之间切换。

  3. 我发现域映射确实有效,但单独的服务不起作用,从我解释文档的方式来看,我们应该能够做到。

    2.1在Datasources.groovy中定义数据源: 您可以声明您希望域模型使用哪种数据源,这样可以正常工作。同样,声明您的域使用多个数据源,然后指定在控制器中使用哪个数据源:    bookInstance.db1.save()     要么    bookInstance.db2.save()

    或者,当数据源未知时,您可以这样做:

    def ds =“db1”//或将其设置为您想要的任何内容,db1,db2,db3 ......    bookstance。 “$ DS” .save()

    但是,如果你想使用服务来声明数据源,那对我来说根本不起作用。

    static datasource =“db1”

    无论如何,这在Grails Services中对我没用。

    2.2在默认数据库中声明数据源,然后在运行时注入其他数据源。 文档说您可以在运行时注入新的数据源bean。而且你可以,但Grails并没有把它拿走。我无法让Grails知道新注入的数据源bean。因此,数据源必须在Datasource.grooy中预先声明

    -