我正在研究grails应用程序。我必须使用H2进行开发,而必须使用Oracle进行测试和生产。使用Oracle时,我必须为每个域类/表使用单独的序列,因此我在域类中使用了以下内容:
static mapping = {
id (generator:'sequence', params:[sequence:'SOME_SEQUENCE'])
}
但后来我无法使用H2。尝试使用用户界面创建新索引时,出现唯一索引或主键冲突错误。
如何使这种映射仅适用于生产和测试环境并为开发保留默认设置?我使用Grails 1.3.7。
最佳答案
对于以下情况,您可以将逻辑嵌入mapping
块中:
import grails.util.Environment
class MyDomainClass {
...
static mapping = {
if (!Environment.isDevelopmentMode()) {
id (generator:'sequence', params:[sequence:'SOME_SEQUENCE'])
}
}
}
关于oracle - 将Oracle和H2用于同一应用程序时Grails中的ID生成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6579120/