AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Hibernate und DAO und Reports
Thema durchsuchen
Ansicht
Themen-Optionen

Hibernate und DAO und Reports

Ein Thema von BörmtDieBuse · begonnen am 6. Mai 2015 · letzter Beitrag vom 13. Mai 2015
Antwort Antwort
Seite 3 von 3     123   
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#21

AW: Hibernate und DAO und Reports

  Alt 12. Mai 2015, 13:17

Deswegen leg ich auch so den Benutzer fest.
Code:
<property name="hibernate.connection.username">qqrhldb</property>
Auf http://java.dzone.com/articles/hiber...settings-derby (und auf https://karussell.wordpress.com/2009...oracle-and-h2/) ist schön zu sehen dass Benutzer und Schemaname in der Hibernate-Konfiguration für den Oracle thin Treiber gleich sind:
Code:
<property name="hibernate.connection.username">YOURSCHEMA</property>
<property name="hibernate.connection.password">YOURPASSWORD</property>
<property name="hibernate.default_schema">YOURSCHEMA</property>
Dann sollte das hier auch funktionieren:
Code:
<property name="hibernate.connection.username">qqrhldb</property>
<roperty name="hibernate.connection.password">...</property>
<property name="hibernate.default_schema">qqrhldb</property>
Ich tippe, der Verbindungsname 'Umweltlabor' ist nur der frei wählbare Anzeigename in der IDE und hat keinen Einfluss.
Michael Justin

Geändert von mjustin (12. Mai 2015 um 14:26 Uhr) Grund: Anführungszeichen korrigiert
  Mit Zitat antworten Zitat
BörmtDieBuse

Registriert seit: 25. Mär 2015
26 Beiträge
 
#22

AW: Hibernate und DAO und Reports

  Alt 12. Mai 2015, 15:10
Ich hab gerade herausgefunden, das wenn ich mit Hibernate auf die DB zugreif und eine Tabelle hinzufüge.
Dann wird es automatisch auf beiden "DB" Namen hinzugefügt. Also in "Test" und in "Umweltlabor".

Ich darf wahrscheinlich "Test" und Umweltlabor" nicht als DBs betrachten.
Die eigentliche DB ist "qqrhldb" und es gibt keine Möglichkeit zwischen den Verbindungsnamen durchzuwechseln.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#23

AW: Hibernate und DAO und Reports

  Alt 12. Mai 2015, 15:45
Ich darf wahrscheinlich "Test" und Umweltlabor" nicht als DBs betrachten.
Die eigentliche DB ist "qqrhldb" und es gibt keine Möglichkeit zwischen den Verbindungsnamen durchzuwechseln.
Also bei Oracle ist es so, dass mehrere User (Schemata) in einer DB liegen können und es auch von Anfang tun, wenn man eine neue erzeugt (per default), also eine Hand voll Standarduser, dann noch die, die man selber anlegt.

Jeder Benutzer/Schema hat eigene Objekte, Datenmodell, Tabellen und Zugriffsrechte. Eine DB hat viele Nutzer, eine Installation kann viele DB haben, ein Rechner kann viele Installationen (also unterschiedliche Oracle Versionen oder Konfigurationen) haben.

Ich hab keine Ahnung von Hibernate, aber
in Deinem Fall ist laut Bild http://www.delphipraxis.net/attachme...rts-schema.png
der Nutzer qqrhldb, der Verbindungsname Umweltlabor oder Test ist eine Hibernatesache, die beliebig vergeben werden kann und nichts mit einer Oracle DB zu tun hat. Kann heißen wie es will und alles auf verschiedene oder die gleiche DB gehen und
auf den gleichen Nutzer!
So sieht es zumindest bei Dir (soweit man das auf dem Bild erkennen kann) so aus und das ergibt scheinbar den Effekt, dass es auf "beiden" Systemen "eingespielt" wird.
Gruß, Jo
  Mit Zitat antworten Zitat
BörmtDieBuse

Registriert seit: 25. Mär 2015
26 Beiträge
 
#24

AW: Hibernate und DAO und Reports

  Alt 13. Mai 2015, 08:48
Also bei Oracle ist es so, dass mehrere User (Schemata) in einer DB liegen können und es auch von Anfang tun, wenn man eine neue erzeugt (per default), also eine Hand voll Standarduser, dann noch die, die man selber anlegt.

Jeder Benutzer/Schema hat eigene Objekte, Datenmodell, Tabellen und Zugriffsrechte. Eine DB hat viele Nutzer, eine Installation kann viele DB haben, ein Rechner kann viele Installationen (also unterschiedliche Oracle Versionen oder Konfigurationen) haben.

Ich hab keine Ahnung von Hibernate, aber
in Deinem Fall ist laut Bild http://www.delphipraxis.net/attachme...rts-schema.png
der Nutzer qqrhldb, der Verbindungsname Umweltlabor oder Test ist eine Hibernatesache, die beliebig vergeben werden kann und nichts mit einer Oracle DB zu tun hat. Kann heißen wie es will und alles auf verschiedene oder die gleiche DB gehen und
auf den gleichen Nutzer!
So sieht es zumindest bei Dir (soweit man das auf dem Bild erkennen kann) so aus und das ergibt scheinbar den Effekt, dass es auf "beiden" Systemen "eingespielt" wird.
Ok, ich begnüg mich jetzt einfach damit, das ich nicht zwischen den Verbindungsnamen wechseln kann.
Ich habe Test und Umweltlabor selber angelegt um meine Programmierung bei "Test" testen zu können bevor ich final auf Umweltlabor zugreif, deswegen wollte ich seperat zugreifen können.


Ich hätte aber noch eine andere Frage wegen Redundanzen.
Ich habe mehrere Tabellen mit einer Spalte Barcodes. Die Spalte Barcodes hat bei jeder Tabelle ein verändertes Format.
Natürlich hab ich aber bei jeder Tabelle auch eine Spalte ID. So ein Barcode setzt sich aber zusammen aus einem Präfix und der ID, z.B. PV_1.
Präfix = PV, ID = 1

Da ID und Barcode in ein und der selben Tabelle sind, wird ja die Redundanz verletzt. Gibt Oracle bei sowas eine Fehlermeldung aus?
Ich würde ungern die Spalte Barcode wegnehmen, da ich den kompletten Barcode in meiner Datenbank haben möchte und die ID wegzulassen kommt mir ihrgenwie falsch vor.
Sorry wenn das eine dumme Frage sein sollte, aber ich habe keine Erfahrung in Datenbanken.
Schonmal Danke im Vorraus.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#25

AW: Hibernate und DAO und Reports

  Alt 13. Mai 2015, 10:52

Ich hätte aber noch eine andere Frage wegen Redundanzen.
Ich habe mehrere Tabellen mit einer Spalte Barcodes. Die Spalte Barcodes hat bei jeder Tabelle ein verändertes Format.
Natürlich hab ich aber bei jeder Tabelle auch eine Spalte ID. So ein Barcode setzt sich aber zusammen aus einem Präfix und der ID, z.B. PV_1.
Präfix = PV, ID = 1

Da ID und Barcode in ein und der selben Tabelle sind, wird ja die Redundanz verletzt. Gibt Oracle bei sowas eine Fehlermeldung aus?
Ich würde ungern die Spalte Barcode wegnehmen, da ich den kompletten Barcode in meiner Datenbank haben möchte und die ID wegzulassen kommt mir ihrgenwie falsch vor.
Ich glaub, ich hab die Frage nicht verstanden.
Wenn 2 Spalten gemeinsam ein eindeutiger Schlüssel sein sollen, kannst Du einen unique constraint definieren, am besten mit dem entsprechenden unique index.
Welche Redundanz wird wann verletzt? Meinst Du vielleicht die Eindeutigkeit wird verletzt?
Möchtest Du beide Spalten zu einer zusammenfassen?
Gruß, Jo
  Mit Zitat antworten Zitat
BörmtDieBuse

Registriert seit: 25. Mär 2015
26 Beiträge
 
#26

AW: Hibernate und DAO und Reports

  Alt 13. Mai 2015, 11:27
Ich glaub, ich hab die Frage nicht verstanden.
Wenn 2 Spalten gemeinsam ein eindeutiger Schlüssel sein sollen, kannst Du einen unique constraint definieren, am besten mit dem entsprechenden unique index.
Welche Redundanz wird wann verletzt? Meinst Du vielleicht die Eindeutigkeit wird verletzt?
Möchtest Du beide Spalten zu einer zusammenfassen?
Mir hat ein Informatiker mal gesagt, das man keine Primärschlüssel machen soll, die aus 2 Spalten bestehen.
Ja ich denke es wird die Eindeutigkeit verletzt, da die ID und der Barcode gleich sind, außer das der Barcode noch diese Präfix "PV_" davor hat. PV_1
Ich möchte die Spalte Barcode behalten, damit ich den Barcode komplett in meiner Datenbank hab. Dann muss der Datentyp aber String sein. Der Barcode lässt sich aber nicht autoamtisch inkrementieren, weil er halt ein String ist. Deswegen lasse ich die Spalte ID drin, die wird dann inkrementiert.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#27

AW: Hibernate und DAO und Reports

  Alt 13. Mai 2015, 11:55
Mir hat ein Informatiker mal gesagt, das man keine Primärschlüssel machen soll, die aus 2 Spalten bestehen.
Ja ich denke es wird die Eindeutigkeit verletzt, da die ID und der Barcode gleich sind, außer das der Barcode noch diese Präfix "PV_" davor hat. PV_1
Ich möchte die Spalte Barcode behalten, damit ich den Barcode komplett in meiner Datenbank hab. Dann muss der Datentyp aber String sein. Der Barcode lässt sich aber nicht autoamtisch inkrementieren, weil er halt ein String ist. Deswegen lasse ich die Spalte ID drin, die wird dann inkrementiert.
Mehrspaltige Primärschlüssel sind glaub ich höchstens ein Problem der Handhabung, also in dem Sinne, dass dort mehr Sorgfalt geboten ist, sind aber nicht verboten.
Ist der Präfix konstant, also immer PV?
Du kannst eine virtuelle Barcodespalte bauen, die ID und konstanten Präfix zusammenfasst oder ID und variablen Präfix. Das würde man mit einem View machen.
Redundanz an sich ist auch kein Nogo, man muss nur (tot)sicherstellen, dass alles synchron bleibt. Da ist dann die Frage, wieviel Aufwand man dafür treibt und warum. Macht man z.B: aus Performancegründen.
Ich würde aber immer erstmal den Weg gehen, redundanzfrei zu bleiben und die Darstellung zu ändern (also View, virtuelle, zusammengesetzte Spalte anlegen). Auch das muss aber durchdacht sein, damit immer der konsistente Zugriff auf den View und die Editierbarkeit-sofern nötig- gegeben ist.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz