【问题标题】:Combining Cassandra and Hibernate in Grails在 Grails 中结合 Cassandra 和 Hibernate
【发布时间】:2015-04-21 02:46:21
【问题描述】:

我想在 Grails 域类中结合 Cassandra 和 Hibernate 数据源;一些域类必须用 Hibernate 映射,而另一些必须用 Cassandra 映射。

我在域类中使用了 (static mapWith = "cassandra"),但 Cassandra 仍然映射项目中的所有域类。

【问题讨论】:

    标签: grails cassandra


    【解决方案1】:

    目前这是 Cassandra GORM 实现的一个限制。即使它不会与 Cassandra 一起使用,所有域也需要映射到表。我的意思是添加对仅使用 Cassandra 中尚未完成的某些域的支持。

    因此,目前您需要在 Cassandra 和 MySQL 中创建整个架构。

    【讨论】:

    • 如何使用 cassandra orm 插件
    • Cassandra orm 插件基于旧的 Cassandra 节俭表结构。它不需要映射所有表。它内置了很多东西,但对我来说,它已经到了生命的尽头。应用动态方法时也可能很奇怪。
    • 那你更喜欢什么?使用 cassandra orm 或使用 cassandra gorm 将所有模式映射到 cassandra 数据库?
    • 我会直接使用 java 本地驱动程序,因为您与域的所有交互都应该在服务层进行,您可以轻松地在 Cassandra 中为每个项目引入一个处理 CRUD 操作的服务。此外,在 C* 中对数据进行建模更侧重于查询而不是数据本身,因此使用 GORM 或 ORM 作为映射器可能会很棘手。
    【解决方案2】:

    虽然目前所有域类都会创建一个 Cassandra 表,但静态 mapWith = "cassandra" 只会将域持久化到 Cassandra。

    没有任何 mapWith 将导致使用 Hibernate 将域类持久化到数据库中。

    请参阅docs 了解更多信息。

    如果您根本不希望保留某个类,请将其移至 src/groovy,如该问题的答案Grails Entity without persist 中所述。

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多