# Probleme mit H2 und Primary Key



## y0dA (28. Mai 2008)

Hi!

Versuche hier gerade ein wenig mit der H2 Datenbank zu experimentieren, leider habe ich Probleme mit dem Primärschlüssel.

Also wenn ich eine Tabelle wie folgt erstelle:

```
CREATE TABLE test(
id IDENTITY PRIMARY KEY,
name VARCHAR(2550)
);
```

Wobei hier angemerkt werden sollte dass der Datentyp *IDENTITY* Autoincrement ist:

```
IDENTITY Type
IDENTITY
Auto-Increment value. 
Possible values: -9223372036854775808 to 9223372036854775807. 
See also java.lang.Long.
```

Bekomme ich bei folgendem Insert eine Fehlermeldung:

```
INSERT INTO TEST VALUES('Hello');
```
Nämlich:

```
INSERT INTO TEST VALUES('Hello');
Anzahl der Felder stimmt nicht überein
Column count does not match; SQL statement:
INSERT INTO TEST VALUES('Hello') [21002-72] 21S02/21002 (Hilfe)
```

Verstehe ich hier was falsch?
Was für einen Typ würdet ihr für den Primary Key benutzen im Zusammenspiel mit Hibernate?


----------



## maki (28. Mai 2008)

Wenn Hibernate benutzt wird, sololte Hibernate das Schema erstellen.

Dein SQL Code ist nutzlos, da Hibernate seinen eigenen erstellt 
Wichtig sind die Mapping Informationen.


----------



## ms (28. Mai 2008)

Abgesehen von dem was maki gesagt hat, müssten doch beim Insert-Statement die Spalten angegeben werden wenn man nicht für jede Spalte einen Value angibt.
Also in deinem Fall


```
INSERT INTO TEST (name) VALUES('Hello');
```

ms


----------



## y0dA (28. Mai 2008)

maki hat gesagt.:
			
		

> Wenn Hibernate benutzt wird, sololte Hibernate das Schema erstellen.
> 
> Dein SQL Code ist nutzlos, da Hibernate seinen eigenen erstellt
> Wichtig sind die Mapping Informationen.



Wie stelle ich denn mit Annotations eine 1:n Beziehung dar, wie gesagt kenne nur die Mappingfiles und hibernate.org geht grad nicht?


----------



## HoaX (29. Mai 2008)

mittels @OneToMany?!


----------

