我正在开发一个允许用户修改数据库中某些数据的Web应用程序。用户指定搜索条件(例如姓名或姓氏),然后应用程序按给定条件搜索数据,在UI上显示,用户编辑数据并按“保存”按钮。
目前,所有修改都会影响同一个表格(person
)。但我需要更改应用程序的逻辑:读取操作(SELECT)应该应用于一个表(person
)。所有写操作(INSERT,UPDATE等)都应该应用于另一个表(person_changes
)。是否有可能通过映射或调整另一个纯GORM设置来实现这种行为?或者我需要为每个SELECT,INSERT,UPDATE?
现在我的域类看起来像这样:
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 。
答案 0 :(得分:3)
是否可以通过映射或调整其他纯GORM设置来实现此类行为?
没有
或者我需要为每个SELECT,INSERT,UPDATE?
开发HQL查询
HQL对你没有帮助。 Hibernate(以及GORM)从根本上假设永久类始终从同一个表中读取和写入
说实话,这个要求听起来很奇怪,如果你写的是一张不同于你读书的桌子,你怎么会真正读到任何东西?