GORM - 从单独的表中读取和写入

时间:2016-06-16 10:22:17

标签: database hibernate grails gorm

我正在开发一个允许用户修改数据库中某些数据的Web应用程序。用户指定搜索条件(例如姓名或姓氏),然后应用程序按给定条件搜索数据,在UI上显示,用户编辑数据并按“保存”按钮。

目前,所有修改都会影响同一个表格(person)。但我需要更改应用程序的逻辑:读取操作(SELECT)应该应用于一个表(person)。所有操作(INSERT,UPDATE等)都应该应用于另一个表(person_changes)。是否有可能通过映射或调整另一个纯GORM设置来实现这种行为?或者我需要为每个SELECT,INSERT,UPDATE?

开发HQL查询

现在我的域类看起来像这样:

class Person implements Serializable {
    private static final long serialVersionUID = -6023326467985259987L;

    String id
    String name
    String surname

    static mapping = {
        datasource 'stuff'
        table 'person'
        cache true
        version false
        id column: 'id', generator: 'assigned'
    }

    static constraints = {
        id(bindable: true, nullable: false, blank: false)
    }
}

我使用 Grails 2.3.11 Hibernate 3.6.10.19

1 个答案:

答案 0 :(得分:3)

  

是否可以通过映射或调整其他纯GORM设置来实现此类行为?

没有

  

或者我需要为每个SELECT,INSERT,UPDATE?

开发HQL查询

HQL对你没有帮助。 Hibernate(以及GORM)从根本上假设永久类始终从同一个表中读取和写入

说实话,这个要求听起来很奇怪,如果你写的是一张不同于你读书的桌子,你怎么会真正读到任何东西?