JPA und Klasse "User"

fsicher

Bekanntes Mitglied
Habe überaschend Probleme mit der Klasse bekommen, die als Entity markiert wird und User heisst:

Java:
@Entity
public class User {
	@Id
	@GeneratedValue
	private int id;
	private String firstName;

	public User() {

	}

	public User(String firstName) {
		this.firstName = firstName;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getFirstName() {
		return firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

}

Bei der Db-Shema-Generierung wird ein "syntaxfehler" bei der Tabelle "User" gemeldet. Nach langem Kontrollieren und Probieren habe ich den Namen der Klasse in AppUser geändert: es lief einwandfrei.

Habe die Klasse wieder in "User" umbenannt und getestet: ohne Erfolg. Der gleiche Fehler ist wieder da. Anschleissend habe ich die Klasse in "Benutzer" umbenannt und es lief wieder gut.

Die Fehlermeldung sieht wie folgt aus:
[XML]
3869 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: create table User (id int4 not null, firstName varchar(255), primary key (id))
3869 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - FEHLER: Syntaxfehler bei »User«
Position: 14
[/XML]

Die restlichen Tabellen werden ansonsten erstellt und die zugehörigen Tests auch erfolgreich ausgeführt.

Kann es wirklich sein, dass der Klassenname "User" nicht erlaubt ist (arbeite mit Hibernate als JPA-Provider)? Oder, sieht jemand evtl., wo das Problem / der Fehler ist?

Danke.
 
M

maki

Gast
User, left, right, etc. pp. sind begriffe, die meist schon reserviert sind von SQL bzw. der DB.

Musst explizit Tabellennamen vergeben, u.U. in Hochkommas falls du wirklich eine "User" tabelle willst, ist aber nciht so dolle falls doch mal SQL Statement manuell geschrieben werden müssen.

Nach und nach wirst du in deiner Userklasse immer mehr JPA Annotationen verwenden (column, table, etc. pp.), überlege dir doch mal ob es Sinn ergeben würde, manche dieser Konfigurationen, die nur die DB betrifft, in die orm.xml auszulagern.
 
M

maki

Gast
Vielen Dank.
Ich versuche ohne orm.xml auszukommen und werde die Klasse halt anders taufen müssen ... :(
Ob das eine gute Idee ist?
Die Fachklassen sollte man nicht wegen technischen Problemen umbennen müssen imho, ich komme auch sehr gut ohne Annotationen aus, sogar besser als mit, eclipselink-orm.xml bringt mir mehr ;)

Je nach DB unterscheiden sich die reservierten Wörter auch noch...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
I Konzept: Klasse / Entity für Einstellung der Software Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
J Nur CRUD über Datenbank Klasse, oder auch mehr ? Datenbankprogrammierung 2
F Mapping SQL mit Klasse Datenbankprogrammierung 7
L MySQL Database Helper Klasse mit Consumer Datenbankprogrammierung 7
S Mithotec-Klasse Datenbankprogrammierung 6
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
M Wie übergebe ich Datenbankobjekte aus einer sql-Datenbank einer Java Klasse bzw. Instanz Datenbankprogrammierung 7
I SQLite Objekt speichern einer Serialisierter Klasse Datenbankprogrammierung 1
G ArrayList aus Verschiedenen klasse füllen Datenbankprogrammierung 5
H Klasse welche Mysql Daten zurück gibt Datenbankprogrammierung 18
S MySQL Datenbankanbindung extra Klasse Datenbankprogrammierung 10
E MySQL Klasse zur Abfrage statisch oder Standard Datenbankprogrammierung 5
A Connection Variable in anderer Klasse verwenden -> statement Datenbankprogrammierung 2
T Klasse zum Syntaxcheck Datenbankprogrammierung 2
G Hibernate: wie @ManyToOne Referenz auf eigene Klasse? Datenbankprogrammierung 1
S Aus ResultSetMetaData Klasse dynamisch erzeugen Datenbankprogrammierung 3
P Neues Attribut in Entity-Klasse Datenbankprogrammierung 3
W XML Klasse in Datenbank speichern? Datenbankprogrammierung 5
N resultset aus andere klasse übergeben Datenbankprogrammierung 3
P Klasse in Datenbank speichern Datenbankprogrammierung 4
A DB-Klasse für häufig verwendete Aufgaben Datenbankprogrammierung 6
I Keine Treiber-Klasse! Datenbankprogrammierung 9
H Aufbau einer DB-Klasse Datenbankprogrammierung 10
J Klasse für Datensatzblättern in Verbindung mit JTable gesuch Datenbankprogrammierung 6
M Die ganze klasse als eigenen Thread laufen lassen Datenbankprogrammierung 3
G gutes design für db-klasse Datenbankprogrammierung 3
N Datenbank in diese Klasse einfügen Datenbankprogrammierung 4
R Beste Lösung für User Erstellung in mongodb Datenbankprogrammierung 1
M Lösungsvorschläge für Multi-User Datenbankprogrammierung 1
P USER Management in SQL übergreifend auf JAVA Programm Datenbankprogrammierung 1
ruutaiokwu MySQL MariaDB-Client-Zertifkate, nur für einen bestimmten User Datenbankprogrammierung 5
H MySQL Benutzer Login System mit Datenbank Informationen (Abfrage zu User ist auf DB gesichert) Datenbankprogrammierung 42
D Multi User Datenbank Anwendung Datenbankprogrammierung 5
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
D HSQLDB user lacks privilege or object not found Datenbankprogrammierung 6
J Datenbank: Methode wegen doppelten User Datenbankprogrammierung 1
M User lacks privilege or object not found Datenbankprogrammierung 3
S UPDATE user Datenbankprogrammierung 4
M MySQL User Eingaben in die DB einfügen Datenbankprogrammierung 7
P Mittels Java einen neuen MySQL User erstellen Datenbankprogrammierung 4
D MySQL User mit nur mit lokalen Lesezugriff und ohne Phpmyadmin Datenbankprogrammierung 4
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
G JDBC-Verbindung: User wechseln Datenbankprogrammierung 2
S JPA Hibernate: "The user must supply a jdbc connection" Datenbankprogrammierung 4
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
1 User die Rechte eines Datenbankerstellers zuweisen? Datenbankprogrammierung 3
G iBatis Datenbankverbindung - DB-User übergeben Datenbankprogrammierung 4
minzel Access denied for user . Datenbankprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben