문제

2 개의 도메인이 있습니다. 마스터 및 세부 사항.

Master{
 String masterName; 
 static hasMany=[details:Detail]
}

Detail
{
  String detailName ; 
  static belongsTo =[master:Master];
}

저장을 처리하는 형태가 있습니다

def save = {
 .....
 def master = new Master(params);
 params.detailsName.eachWithIndex(dtName, index ->
   def detail = new Detail();
   detail.detailName = dtName; 
   ....
   master.addToDetails(detail);
 }
  .....
 master.save(flush:true);
}

Mas 자세한 내용에 오류가 있으면 마스터를 취소하는 방법을 알고 싶습니다. 세부 사항에서 오류를 추적하는 방법을 알고 싶습니다.

감사해요

도움이 되었습니까?

해결책

거래는 필요한 것입니다. 서비스 저장을 수행 할 수 있습니다. 트랜잭션 = true가있는 서비스에서 모든 방법은 트랜잭션에 래핑되며 예외가 발생하면 자동화 된 롤백이 있습니다.

class MasterService {

    boolean transactional = true

    def save(...) { }
}

또는 사용할 수 있습니다 트랜잭션으로 서비스를 작성하지 않으려면 컨트롤러의 폐쇄로 트랜잭션에서 코드를 랩핑하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top