我正在使用分配了 id 生成器的域类构建一个 grails 应用程序(也就是说,它们不会自动生成)。假设我有一个域类 Parentstatic hasMany = [children: Child]
和域类 Child。
我正在尝试使用 查找 Parent 的实例Parent.findWhere(propertyMap)
,但收到NonUniqueObjectException指示已经有一个与此会话关联的 Child 实例,其 id 为 0。我的 propertyMap 不包含 id 的条目。
现在,每当我尝试在会话中保存一个类的两个实例而不设置它们的 id 时,我都习惯于得到这个错误。因为 id 不是自动生成的,所以它们默认为零,这允许保存第一个,第二个抛出错误,因为 id 是第一个的副本。令我惊讶的是,我试图找到一个实例,而不是保存一个......有谁知道可能导致这种行为的原因以及我如何在使用我的属性图进行搜索的同时绕过它?