【发布时间】:2016-09-16 18:28:40
【问题描述】:
我的数据库中有一个名为 invoice_number 的列。
class Customer {
String name
int invoiceNumber
static constraints = {
name(blank: false)
invoiceNumber(unique: true)
}
}
index.gsp 文件中没有 invoice_number 字段。
<g:form controller="customer">
Name:<br>
<g:textField name="name"></g:textField><br>
<g:actionSubmit value="Submit" action="Save"></g:actionSubmit><br>
</g:form>
我想生成一个发票号,并增加一个差5。例如,第一个客户提交表单时,发票号可能生成为105。第二个客户提交表单时,发票号应该是110 . 它们应该保存在数据库中并且它们必须是唯一的。 然后,我想从数据库中为提交表单的客户检索发票编号,然后将该发票编号传递给另一个 gsp 文件。
我该怎么做?
【问题讨论】:
-
嗯...所以一个客户只能有一张发票?曾经?将发票编号增加 5 是否有真正的商业原因? 106..109 会发生什么?
-
正如@railsdog 所指出的,为什么要将发票编号增加5?您可以简单地将其增加1,它仍然可以是唯一的,对吧?同样从您的域类来看,似乎只会为客户映射一张发票。这是业务逻辑吗?
-
这里的一切似乎都错了。这就是为什么您没有收到任何好的答案。正如 railsdog 所提到的 - 1 个用户和 1 个发票似乎很奇怪。您应该将发票创建为一个类并向用户添加一对多(如果您想要超过 1 个发票)。并且该数字可以是域函数
afterInsert,即invoiceNumber = id*5 +100或类似的东西。 (但仅当您将发票作为单独的类时才有效。 -
谢谢。请查看我的回答并解释我的疑问
标签: grails