gpt4 book ai didi

java - grails 不会保存但没有错误

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:56:31 24 4
gpt4 key购买 nike

您好,我有一个像下面这样简单的域

// page 52 Bankruptcy Questions 
class FamilyLawFinancial{

Date dateOfTheOrder ;
boolean isPartyToFamilyLawProperty = false;
boolean isCurrentlyInvolvedInFamilyLawProperty = false;
boolean isBecomeInvolvedInProceedings = false;

static belongsTo=[person:Person];

static constraints = {
dateOfTheOrder(nullable:true);
isPartyToFamilyLawProperty(nullable:false);
isCurrentlyInvolvedInFamilyLawProperty(nullable:false);
isBecomeInvolvedInProceedings(nullable:false);
}

String toString(){
"${id}"
}
}

这是保存数据的 Controller :

    def save = {
def person = Person.get(session.curperson.id);
def obj = FamilyLawFinancial.findByPerson(person);
if(obj == null){
obj = new FamilyLawFinancial();
obj.person = person ;
}
params.dateOfTheOrder = myutil.formatDate(params.dateOfTheOrder);
obj.properties = params;

println(obj.hasErrors());
println(obj.dateOfTheOrder);
if(obj.hasErrors() && !obj.save(flush:true)){
println("errors: ${obj.errors}");
flash.message = "error found";
println("save familyLawFinancial errors: ${errors}");
}else{
flash.message = "saved ";
}
redirect(controller:'frontPage', action:'index'); return ;
}

obj.hasErrors() 产生 false(这意味着没有错误)但它不会保存到数据库中。知道如何调试吗?

ps: myutil.formatDate() --> 用于将日期字符串如 19/11/2010 转换为 Date()

最佳答案

if(obj.hasErrors() && !obj.save(flush:true)){

如果 && 之前的条件评估为 false,则不会评估之后的条件。

由于 false && true 的计算结果为 false,从语言的角度来看,计算第二个条件是低效的。

毕竟,在这种情况下,obj.save(..) 永远不会被调用。

关于java - grails 不会保存但没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4310817/

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