私は、IDを除いてデータベースに重複レコードを許可しています。レコードが更新されると、重複を見つけて更新する必要があります。私は研究を通して、HibernateのイベントメソッドbeforeUpdateとafterUpdateを見つけました。grailsで重複レコードを更新する方法
ERROR:行を更新または削除別のトランザクションによって(または保存されていないと値のマッピングが間違っていました)た
ここでは私のafterUpdateある問題は、私が重複するものを見つけ、それらを介して繰り返しを開始したときに、私はこのエラーを取得するということですドメイン内のコード:エラーがライン19上にある
1 def afterUpdate() {
2 println "\n*** afterUpdate ***"
3 def record = this
4
5 DomainObject.createCriteria().list() {
6 ne('id', record.id)
7 or {
8 eq('storeId', record.storeId)
9 and {
10 eq('firstName', record.firstName)
11 eq('lastName', record.lastName)
12 eq('dateOfBirth', record.dateOfBirth)
13 }
14 }
15 //eq('lastUpdated', record.lastUpdated)
16 }.each { dupe ->
17 log.info "syncing ${dupe.id} with ${record.id}"
18 dupe.properties.each{ key, value ->
19 println "*** prop: ${key}: ${value}"
20 }
21 }
22 }
23
我々はGrailsの2.4.4を使用し、Windows
クラップ、私は.withNewSession部分を見逃している必要があります!ジョシュアありがとう! – havoc74