# Initial data ohne SQL imports?



## membersound (10. Apr 2012)

Hi,

gibt es irgendwie eine Möglichkeit Webapps mit initial data zu versorgen, ohne hbm-files oder import.sql zu verwenden (Hibernate DB)?

Also in etwa eine statische Klasse, die beim Deployment die definierten Objekte schonmal in der Datenbank ablegt.

Danke


----------



## Sym (10. Apr 2012)

Klar, wenn Du z.B. EJBs verwendest, könntest Du eine beim Applicationstart erzeugen, welche prüft, ob alle Daten in der DB sind und im Fehlerfall die Daten erzeugt.


----------



## membersound (10. Apr 2012)

Und wo würde die Logik dafür erstellen?
Mir fehlt bei einer Webapp ja die main Methode, die automatisch beim Deploy ausgeführt wird.

Oder meinst du, die Logik in den Konstruktor einer (beliebigen) stateless EJB schreiben, die bei ihrem ersten Aufruf dann die Objekte erzeugt (je nach DB Stand)?


----------



## mvitz (10. Apr 2012)

ServletContextListener (Java EE 5 SDK)


----------



## membersound (10. Apr 2012)

Hm ich benutz allerdings bereits den ContextLoaderListener von Spring.
Also kann ich leider keinen eigenen mehr definieren...


----------



## mvitz (10. Apr 2012)

Klar. Du definierst den nach dem Spring spezifischen und kannst in diesem über

```
...
public void contextInitialized(ServletContextEvent event) {
    ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext.getRequiredWebApplicationContext();
ctx.getBean("...");
}
...
```
sogar an Spring Beans gelangen.


----------



## membersound (10. Apr 2012)

Achso ok, wusste nicht dass die Reihenfolge der Listener ausschlaggebend ist.

Funktioniert nun, many thanks


----------

