gpt4 book ai didi

hibernate - Grails域delete()是否更新事务中子代的数量

转载 作者:行者123 更新时间:2023-12-02 15:49:48 24 4
gpt4 key购买 nike

我将通过测试自己回答这个问题,但以为我会参加stackoverflow社区的比赛...

在grails域事务中,子记录的数量在事务内部是否发生更改(例如,使用delete)

MyDomain.withTransaction{status->
try{
while(parent.children.size()>4){
parent.children[0].delete(flush:true);
}
}
catch(org.springframework.dao.DataIntegrityViolationException e){
status.setRollbackOnly();
}

}

最佳答案

答案是肯定的。尽管grails不允许 child 接触 child [0]。我必须通过使用children.collect {it} [0]或
children.iterator()。next()

测试:

 def p=new TestParentDomain();
def i=0
while(i<3){
def child=new TestChildDomain();
m.addToChildren(child);
i++
}
m.save(flush:true);
println p.children.size() //3

TestParentDomain.withTransaction{status->
while(m.children.size()>1){
m.removeFromChildren(m.children.iterator).next()).save(flush:true)
}
}
println m.children.size();//1

关于hibernate - Grails域delete()是否更新事务中子代的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com