GORM - 读取和写入 from/into 个单独的表
GORM - read and write from/into separate tables
我正在开发一个允许用户修改数据库中某些数据的 Web 应用程序。用户指定搜索条件(例如姓名或姓氏),然后应用程序根据给定条件搜索数据,将其显示在 UI 上,用户编辑数据并按下 'Save' 按钮。
目前所有编辑都会影响同一个 table (person
)。但我需要更改应用程序的逻辑:read 操作 (SELECT) 应该应用于一个 table (person
)。所有 write 操作(INSERT、UPDATE 等)都应应用于另一个 table (person_changes
)。是否可以通过映射或调整另一个纯 GORM 设置来实现这种行为?或者我需要为每个 SELECT、INSERT、UPDATE 开发 HQL 查询?
现在我的域 class 看起来像这样:
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.
Is it possible to achieve such behavior via mapping or tuning another pure GORM settings?
没有
Or I need to develop HQL query for each SELECT, INSERT, UPDATE?
HQL 帮不了你。 Hibernate(以及 GORM)从根本上假设持久化 class 总是从相同的 table
读取和写入
老实说,这个要求听起来很奇怪,如果您写入的 table 与您正在读取的不同,您将如何实际读取任何内容?
我正在开发一个允许用户修改数据库中某些数据的 Web 应用程序。用户指定搜索条件(例如姓名或姓氏),然后应用程序根据给定条件搜索数据,将其显示在 UI 上,用户编辑数据并按下 'Save' 按钮。
目前所有编辑都会影响同一个 table (person
)。但我需要更改应用程序的逻辑:read 操作 (SELECT) 应该应用于一个 table (person
)。所有 write 操作(INSERT、UPDATE 等)都应应用于另一个 table (person_changes
)。是否可以通过映射或调整另一个纯 GORM 设置来实现这种行为?或者我需要为每个 SELECT、INSERT、UPDATE 开发 HQL 查询?
现在我的域 class 看起来像这样:
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.
Is it possible to achieve such behavior via mapping or tuning another pure GORM settings?
没有
Or I need to develop HQL query for each SELECT, INSERT, UPDATE?
HQL 帮不了你。 Hibernate(以及 GORM)从根本上假设持久化 class 总是从相同的 table
读取和写入老实说,这个要求听起来很奇怪,如果您写入的 table 与您正在读取的不同,您将如何实际读取任何内容?