# Je nach Benutzer anderes Datenbank-Schema auswählen



## rogerssocke (5. Feb 2011)

Hallo Leute,

genutzter Application-Server: JBOSS 5.1
Datenbank: Postgres

ich überlege gerade für bestimmte Personengruppen unterschiedliche Datenbank-Schemata mit einer identischen Tabellenstruktur zu erstellen.

Ist es möglich bei einem Java Client mit Hilfe des InitialContext das Datenbankschema des Applicationservers zu ändern/festzulegen?

Oder benötige ich für jedes Datenbankschema ein eigenes EAR-File welches bei jeder Entity die Annotation @Table(schema="XYZ") enthält und die Clients je nach Personengruppe auf ein anderes EAR-File zugreift?


----------



## FArt (7. Feb 2011)

rogerssocke hat gesagt.:


> Hallo Leute,
> 
> genutzter Application-Server: JBOSS 5.1
> Datenbank: Postgres
> ...



entity bean differen database - Google-Suche


----------



## rogerssocke (7. Feb 2011)

Danke für die Antwort, aber leider bringt mich dies nicht weiter.
Zumindestens habe ich nicht gefunden was ich suche.

Ich möchte je nach Client, der meine EJBs per InitialContext aufruft, festlegen können welches Datenbankschema ausgewählt wird.

Also ich hätte gerne ein EAR-File welches immer auf meine Postgres Datenbank zugreift, allerdings je nachdem was im InitialContext vom Client steht auf ein anderes Datenbankschema zugreifen.


----------



## FArt (7. Feb 2011)

Dies ist eine Antwort aus obigem Link:


> As far as performance issue is concerned it is quite context dependent and
> one need to think about the required functionality, specific scenario and
> then what is the best design pattern to use. So we can't make it a rule that
> using a Session EJB in a scenario that involves multiple databases is not
> ...


Es gibt im Prinzip verschieden Möglichkeiten, abhängig von deinem Design und deine Bedürfnissen. In deinem Fall wäre vermutlich tatsächlich am einfachsten die Applikation mehrfach zu deployen. Aber es reicht auch die Zugriffschicht mehrfach zu deployen (Entity Beans und evtl. noch eine Schicht) und diese dynamisch an die Applikation zu binden, z.B. über Konfiguration der Businesslogikschicht und passendes Binding im JNDI, so dass die Clients über den Lookup dynamisch die passend konfigurierte Businesslogik verwendet.


----------



## rogerssocke (7. Feb 2011)

Danke,
ich werde dann wohl mehrere EAR-Files erstellen.


----------

