Grails 域类属性设置验证失败

发布于 2024-12-12 19:30:42 字数 319 浏览 3 评论 0原文

我对 grails 中的 setter 有问题。我有两个属性 beforeTax 和 afterTax。我只想在Tax之前的数据库中存储一个属性。在用户界面中,我希望用户在税前或税后输入。因此,我将 afterTax 设置为这样的瞬态属性:

double getAfterTax(){
  return beforeTax * tax
}

void setAfterTax(double value){
  beforeTax = value / tax
}

当我现在输入税后值并想要保存对象时,验证失败(税前不能为空值)

我做错了什么?

I have problem with a setter in grails. I have two properties beforeTax and afterTax. I only want to store one property in the db beforeTax. In the ui I want the user to enter either before or after tax. So I made the afterTax a transient property like this:

double getAfterTax(){
  return beforeTax * tax
}

void setAfterTax(double value){
  beforeTax = value / tax
}

When I now enter the after tax value and want to save the object the validation fails (before tax can not be an empty value)

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

数理化全能战士 2024-12-19 19:30:42

如果我正确理解你的问题,你想根据 afterTax 的值计算 beforeTax 吗?

您可以使用事件处理程序方法 beforeXXX()(其中 XXX 是 Validate、Insert 和 Update)来计算 beforeTax。那么beforeTax的约束可以为nullable:false。

def beforeValidate() {
   computeBeforeTax() 
}

If I understand your question correctly, you want to compute beforeTax based on the value of afterTax?

You could use the event handler methods beforeXXX() where XXX is Validate, Insert, and Update to compute beforeTax. Then beforeTax's constraint can be nullable:false.

def beforeValidate() {
   computeBeforeTax() 
}
独自←快乐 2024-12-19 19:30:42

您必须将一个属性标记为瞬态,以防止 GORM 尝试将此变量保存到数据库中。尝试将此行添加到您的域类中,其中包含 afterTax

static transients = ['afterTax']

You have to flag one property as transient, in order to prevent GORM from trying to save this variable into DB. Try to add this line into your domain class, which contains afterTax.

static transients = ['afterTax']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文