2016-05-16 10 views
0

Ich habe eine Domain, wo ich eine Ganzzahl als eine Sequenz beginnend mit 1 erstellen muss. Und es sollte bei einer für jede neue Website beginnen, die ich habe. Lassen Sie sich also sagen, ich habe diese Klasse mit dem Namen RechnungWie erstellt man ein Sequenzfeld auf Grails, ohne Primärschlüssel zu sein und sich auf ein anderes Feld zu beziehen?

Invoice{ 
    Site site 
    Integer invoiceNumber 
    //Other attributes 
} 

Also, was ich tun möchte, ist: die InvoiceNumber werden bei 1 beginnen, für jeden anderen Standort die ich habe.

Site{ 
    String siteName; 
} 

Angenommen, ich habe 3 verschiedene Standorte mit Site-Namen: "Seite 1", "Seite 2" und "Seite 3"

Wenn ich 5 Rechnungen haben für "Seite 1", die invoiceNumbers sein sollte: 1,2,3,4,5. Wenn ich 3 Rechnungen für "Site 2" habe, sollten die rechnungsnummern lauten: 1,2,3 Und so weiter ...

Wie kann ich diese Struktur mit Grails erstellen, um diese Sequenz darzustellen?

Antwort

0

prüfe ich diesen Code nicht, aber die Idee ist einfach:

class Invoice { 
    Site site 
    Integer invoiceNumber 

    def beforeInsert() { 
     if (!invoiceNumber) { // just in case you will pass this number by yourself for some reason 
     def lastInvoice = Invoice.countBySite(site) 
     invoiceNumber = lastInvoice + 1 
     } 
    } 
} 
Verwandte Themen