Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
grails/hibernate findOrCreateBy始终在创建_Hibernate_Grails_Gorm - Fatal编程技术网

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?