hasMany 연관에서 많은 개체를 삭제 한 다음 개체 자체를 삭제하는 데 이상한 문제가 있습니다.RemoveFrom 및 delete()
class User {
}
class Website {
static hasMany = [websiteUsers : User]
}
이 방법 :
내가 도메인 클래스의 웹 사이트 및 사용자 (나는 'belongsTo를'관계가없는)가
한번이 메소드를 호출void deleteUserFromWebsite(User user,Website website){
log.debug "-----> deleteUserFromWebsite()"
println website.websiteUsers
website.removeFromWebsiteUsers(user)
println website.websiteUsers
user.delete(flush:true)
log.debug "deleteUserFromWebsite ----->"
}
, 모든 것은 괜찮습니다. 그러나 한 번에 대량 작업을 원할 때 (2 명 이상의 사용자 삭제) 최대 절전 모드에서 오류가 발생했습니다.
deleted object would be re-saved by cascade (remove deleted object from associations)
최대 절전 모드로 웹 사이트에서 사용자를 제거하지 않기 때문에 발생합니다.
가두 방법의 로그가 다른 사용자와 호출
제 호 Hibernate에서2013-08-19 16:49:56,769 [http-bio-8080-exec-9] DEBUG website.WebsiteService - -----> deleteUserFromWebsite)
[com.**.security.User : 17, com.**.security.User : 3, com.**.security.User : 12, com.**.security.User : 21, com.**.security.User : 16]
[com.**.security.User : 17, com.**.security.User : 3, com.**.security.User : 21, com.**.security.User : 16]
2013-08-19 16:49:56,777 [http-bio-8080-exec-9] DEBUG website.WebsiteService - deleteUserFromWebsite ----->
[com.**.security.User : 17, com.**.security.User : 3, com.**.security.User : 21, com.**.security.User : 16]
2013-08-19 16:49:56,811 [http-bio-8080-exec-9] ERROR errors.GrailsExceptionResolver - ObjectDeletedException occurred when processing request: [POST] /**/**/** - parameters:
users: 12,16
websiteId: mol24o
deleted object would be re-saved by cascade (remove deleted object from associations): [com.**.security.User#16]. Stacktrace follows:
가 협회로부터 사용자를 제거 (userId를 12)하지만, 두번째, 삭제되지 않은 ID 16 사용자 에서 많은 것을 가지고 있고 그때 내가 객체를 삭제하고 싶을 때, 최대 절전 모드는 물론 예외를 던집니다.
최대 절전 모드로 캐시를 비우고 웹 사이트 사용자를 업데이트하는 방법이 있습니까?
대량 삭제를 수행하는 코드를 추가 할 수 있습니까 – ikumen
아직 해결되지 않았습니까? – Gideon