Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen

Avalon

Bekanntes Mitglied
Hallo, ich habe eine Spring Boot Anwendung gebaut. Als blutiger Anfänger nach einem Tutorial in Youtube. Funktioniert auch alles soweit. Dabei wird eine Tabelle in einer MySQL Datenbank angelegt. Folgendes Problem: Ich habe z.B in einer Klasse Patient das Attribut "nachName" entsprechend lowerCamelCase Konvention bei Variablen in Java. Wenn ich damit die Tabelle von der Anwendung anlegen lasse, wird das Attribut "nachName" in der Klasse zum Spaltennamen "nach_name" in der Tabelle. Irgendwo wird der Großbuchstabe konvertiert zu einem Unterstrich gefolgt von einem Kleinbuchstaben. Das ist zwar eher ein kosmetisches Problem, denn wenn ich der Klasse als Attribut "nachname" verwende, wird auch "nachname" in die Datenbank eingetragen. Das entspricht aber dann nicht den Konventionen. Hat da jemand Erfahrung mit Eclipse, Spring Boot, JPA, Hibernate und MySQL Connect (alles als Maven Projekt)? Kennt jemand das Problem? Reicht die Beschreibung? Oder werden noch Code und Bilderchen benötigt?
 

mrBrown

Super-Moderator
Mitarbeiter
Das ist das Standardverhalten von Hibernate mir Spring Boot, man kann auch andere auswählen, oder aber über die Annotation den Namen selbst setzen.

Grund dürfte sein, dass die meisten DBs defaulmäßig case-insensitive sind, und ein Unterstrich als Trenner deshalb sinnvoller ist.
 

Avalon

Bekanntes Mitglied
Super. Ich wusste nicht, das man den Namen per Annotation selber setzen kann. Probier ich gleich mal aus. Danke!!!
 

LimDul

Top Contributor
Ich finde aber NachName auch in Java Falsch, den der Begriff heißt "Nachname" Camel Case sollte man nur verwenden, wenn man zwei Wörter zusammenschreibt, die eigenständig sind.
 

Avalon

Bekanntes Mitglied
Ich finde aber NachName auch in Java Falsch, den der Begriff heißt "Nachname" Camel Case sollte man nur verwenden, wenn man zwei Wörter zusammenschreibt, die eigenständig sind.
Das ist richtig. Es ist ein Begriff. Da stimme ich zu. Aber nicht ein Wort. Nachname setzt sich aus zwei Wörtern zusammen. Nach und Name. Demnach sollte nachName richtig sein.
 

mrBrown

Super-Moderator
Mitarbeiter
Aber nicht ein Wort. Nachname setzt sich aus zwei Wörtern zusammen.
Beides widerspricht sich für mich gar nicht, es ist ein Wort, welches sich aus zwei Wörten zusammensetzt. In Deutsch ist halt auch Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz ein Wort :p

Im englischen ist’s da oft einfacher...
 

LimDul

Top Contributor
Wenn ich mal nach der Definition von Camel Case gehe: https://en.wikipedia.org/wiki/Camel_case - heißt es, man lässt Leerzeichen, Punkte etc. weg. Eine RegeEx auf Word Boundaries würde bei Nachname ja auch nicht nach Nach und Name trennen. Dementsprechend halte ich auch in Camel Case die "formal" richtige Schreibweise für Nachname.

Allerdings stimme ich @mrBrown zu. Aus Gründen der Lesbarkeit oder Semantik muss man sich nicht sklavisch an Formalismen halten. Das wichtigste ist, dass es konsistent ist und verständlich.
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn ich mal nach der Definition von Camel Case gehe: https://en.wikipedia.org/wiki/Camel_case - heißt es, man lässt Leerzeichen, Punkte etc. weg. Eine RegeEx auf Word Boundaries würde bei Nachname ja auch nicht nach Nach und Name trennen. Dementsprechend halte ich auch in Camel Case die "formal" richtige Schreibweise für Nachname.
Der Artikel dürfte sich aber auf Englische Sprache beziehen, das Zusammensetzen von Wörtern gibts da ja so nicht. Das ist daher mMn schwierig aufs Deutsche zu übertragen, zB wäre auf Englisch "FamilyName" korrekt, auf Deutsch aber "Familienname"
 

Thallius

Top Contributor
Generell würde ich FamilyName nicht verwenden. In vielen Ländern gibt es gar keine solche strickte Unterscheidung zwischen Vor- und Nachnamen (Familiennamen). Ich würde immer mit Firstname, Secondname oder meinetwegen auch Lastname arbeiten.
 

mrBrown

Super-Moderator
Mitarbeiter
Generell würde ich FamilyName nicht verwenden. In vielen Ländern gibt es gar keine solche strickte Unterscheidung zwischen Vor- und Nachnamen (Familiennamen). Ich würde immer mit Firstname, Secondname oder meinetwegen auch Lastname arbeiten.

Auch mit FirstName und SecondName kommt man an Grenzen, nicht überall lässt es sich in zwei Teile teilen, und mit LastName ist man wieder in dem Vor- und Nachnamen-Schema. In manchen spielt dazu noch die Reihenfolge der Bestandteile von Vor- oder Nachname eine Rolle, in manchen gibt es Vor- und Nachname, aber der Nachname steht vor dem Vornamen, SecondName bietet dazu Verwechselungsgefahr mit dem zweiten Vornamen (oder Nachnamen)...

Am einfachsten fährt man mit einfach nur "Name"...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Wie muss meine SQL Tabelle aufgebaut sein, um unendliche Attribute zu vermeiden Datenbankprogrammierung 2
P DB4o Attribute hinzufügen Datenbankprogrammierung 5
I mit Java SQL Attribute / Tabellen erstellen Datenbankprogrammierung 17
G welche Datenbanktabellen für folgende Attribute Datenbankprogrammierung 3
R Mongodb Daten werden immer überschrieben Datenbankprogrammierung 7
T Datenzeilen werden nicht gelöscht Datenbankprogrammierung 6
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
JG12111989 DB-Daten werden falsch dargestellt Datenbankprogrammierung 7
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
I Es kann keine Verbindung zum Server aufgebaut werden Datenbankprogrammierung 12
Ananaskirsche Datenbanktreiber kann nicht geladen werden Datenbankprogrammierung 2
E Warum werden für Datenbanktabellen Schemanamen festgelegt? Datenbankprogrammierung 1
E Warum kann mein SQL-File nicht in DB2 ausgeführt werden? Datenbankprogrammierung 1
M JDBC Tabellen mit Boolean Spalten können nicht erstellt werden. DB Updaten - wie? Datenbankprogrammierung 6
T Tabellen von nicht mehr vorhandenen Entities werden generiert Datenbankprogrammierung 0
J MySQL Workbench Tabellen werden verschoben Datenbankprogrammierung 1
B Nur 99% der Datensätze werden in Tabelle geschrieben Datenbankprogrammierung 2
D [xBaseJ] Datei kann nicht geöffnet werden Datenbankprogrammierung 2
S MySQL Abfrage über mehrere Tabellen + Einträge werden überschrieben Datenbankprogrammierung 1
R Datenbankverbindung kann nicht hergestellt werden Datenbankprogrammierung 8
Kandum MySQL Anzahl gefundener Datensätze bleibt gleich, auch wenn mehr existieren und ausgegeben werden Datenbankprogrammierung 3
J JDBC in Library|"Treiber konnte nicht geladen werden"" Datenbankprogrammierung 2
D MySQL Treiber konnte nicht geladen werden Datenbankprogrammierung 3
D MySQL Daten werden aus Datenbank gelesen, obwohl sie dort gar nicht angekommen sind Datenbankprogrammierung 8
L SQLite Daten werden nicht in die Tabelle eingefügt Datenbankprogrammierung 7
D Können nur angesehende Datensätze geloggt werden? Datenbankprogrammierung 4
T Umlaute werden aus der *.mdb nicht gelesen Datenbankprogrammierung 3
L CLOB-Daten werden beim Einfügen in die Datenbank geändert? Datenbankprogrammierung 5
B Es werden keine Tupel in Tabellen abgelegt Datenbankprogrammierung 2
N Connection kann nicht geschlossen werden!? Datenbankprogrammierung 4
S Hibernate - Abgeleitete Klassen werden nicht angezeigt wenn... Datenbankprogrammierung 6
S Embedded DB, die aus mehreren JVMs gestartet werden kann? Datenbankprogrammierung 10
H Oracle - Indizes werden nicht genommen Datenbankprogrammierung 6
S Identitätsspalte kann nicht aktualisiert werden Datenbankprogrammierung 11
G hibernate.cfg.xml kann nicht gefunden werden. Datenbankprogrammierung 3
B Datenbankverbindung kann nicht aufgebaut werden. Datenbankprogrammierung 2
ARadauer Wann werden Daten übertragen bzw geladen Datenbankprogrammierung 5
P Es werden keine Daten mehr in die Tabelle eingefügt Datenbankprogrammierung 4
T Hibernate - wie werden Kind-Objekte nachgeladen? Datenbankprogrammierung 3
G Daten werden nicht in die datenbank geschrieben Datenbankprogrammierung 6
M SQL-Befehle werden manchmal nicht komplett übermittelt Datenbankprogrammierung 5
M werden executeBatch()-commandos automatisch commitet ? Datenbankprogrammierung 8
H Verbindung mit Connector/J kann nicht aufgebaut werden Datenbankprogrammierung 3
S MySQL und Java: Falsche Daten werden ausgelesen Datenbankprogrammierung 9
M Die gezogenen Daten werden nicht richtig ins JTableeingefügt Datenbankprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben