データベースにinvoice_numberという名前の列が1つあります。Grailsのデータベースから値を取得する
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>
私は1つの請求書番号を生成し、最初の顧客がフォームを送信したときに、請求書番号が第2の顧客がフォームを送信105、インボイスのように生成されてもよい。例えば5の差でそれを増加します番号は110にする必要があります。それらはデータベースに保存する必要があり、一意でなければなりません。 次に、フォームを送信した顧客の請求書番号をデータベースから取り出し、その請求書番号を別のgspファイルに渡します。
どうすればいいですか?
にうーんので、顧客はわずか1枚の請求書を持つことができますか?いつまで?請求書番号を5ずつ増やすのは本当のビジネス上の理由ですか? 106..109はどうなりますか? – railsdog
@railsdogが指摘しているように、なぜ請求書番号を5ずつインクリメントしたいのですか?単純に1をインクリメントしても、まだユニークにすることはできますか?また、あなたのドメインクラスからは、顧客のために1つの請求書だけがマッピングされるように見えます。これはビジネスロジックですか? –
ここのすべては間違っているようです。だからこそあなたは良い答えを得ていません。 railsdogが言及していたように - 1人のユーザーと1人の請求書が奇妙に思える。クラスとして請求書を作成し、ユーザーに1対多を追加する必要があります(1つ以上の請求書が必要な場合)。番号は 'invoiceNumber = id * 5 + 100'またはそのようなものになるドメイン関数' afterInsert'です。 (ただし、別途クラスとしての請求書がある場合にのみ動作します。 –