grails/hibernate findOrCreateBy始终在创建
我有一个我使用的地址类 我的方法调用是grails/hibernate findOrCreateBy始终在创建,hibernate,grails,gorm,Hibernate,Grails,Gorm,我有一个我使用的地址类 我的方法调用是 Address.findOrCreateByAddress1AndAddress2AndCityAndStateAndZipCode(params.address1, params.address2, params.city, params.state, params.zip) 虽然我读到的所有内容都说明这应该“查找是否存在,否则创建”,但它会在地址表中创建一条新记录 下面是我的地址表中的两个示例 ID - 1 version - 0 address1
Address.findOrCreateByAddress1AndAddress2AndCityAndStateAndZipCode(params.address1, params.address2, params.city, params.state, params.zip)
虽然我读到的所有内容都说明这应该“查找是否存在,否则创建”,但它会在地址表中创建一条新记录
下面是我的地址表中的两个示例
ID - 1
version - 0
address1 - 123 Main St
address2 - null
city - P
state - OH
zipCode - 12345
ID - 5
version - 0
address1 - 123 Main St
address2 - null
city - P
state - OH
zipCode - 12345
我的地址类
class Address {
String address1
String address2
String city
String state
Integer zipCode
static constraints = {
address2 nullable:true
shippingAddress nullable:true
billingAddress nullable:true
}
static belongsTo = [shippingAddress: CustomerShippingAddress, billingAddress: CustomerBillingAddress]
}
您的假设是正确的,一个简单的测试(即使有
null
也能按预期工作。所以问题是,那里的实际数据是什么?是“空”还是“空”之类的东西?你能排除并发访问吗?您使用的数据库是什么?另外,如果您包含了域类,那么我们可以排除自定义映射等情况,这将非常有用。@cfrick添加了地址类。在中使用标准H2数据库devl@JoshuaMoore添加了域类您正在运行哪个版本的Grails?