Hallo zusammen,
im Rahmen eines Projektes mit Hibernate 3 habe ich vor einiger Zeit einen eigenen Nummerngenerator geschrieben, der beispielsweise für die Erzeugung von Rechnungsnummern verwendet wird. Einige dieser Nummerbereiche haben die Eigenschaft, mit dem Jahreswechsel wieder bei 1 zu starten.
Basis für diesen Nummerngenerator ist die Klasse TabelGenerator. Herrausforderung (damals wie heute): die Nummer sollte innerhalb einer laufenden (User)Transaction ermittelt werden können, nicht erst am Ende der Transaction.
Eine Tabelle enthält die aktuellen Werte für die einzelnen Nummerbereiche sowie die Information darüber, ob z.B. ein Neustart zum Jahreswechsel stattfinden soll.
Dafür wurde einen eigene Transaction (unabhängig von der aktuellen (User)Transaction gestartet, die SQL-Abfragen (Select / Update) ausgeführt und dann das Ergebnis zurückgegeben. Der Nummerngenerator wurde dabei nicht als Annotaion verwendet, sondern über einen Handler-Klasse, die noch etwas Kosmetik mit dem Ergebnis machen kann, aufgerufen.
Hat jemand von Euch eine Idee, wie man das mit Hilfe von SquenceStyleGenerator nachbauen kann? Sind Alternativen (als EJB) denkbar?
Vielen Dank. Gruß Ronald
|