# JPA Unique Constraint Problem



## Gelöschtes Mitglied 5909 (13. Okt 2008)

Zur Zeit bin ich ein bischen am Experimentieren mit JPA und bin auf ein Problem gestoßen.
Wenn ich in der Column annotation unique=true bei mehr als einer Entity setze, dann
fliegt mir ne Excepttion um die Ohren dass der Constraint bereits besteht
(Ich lasse mir auch das DB Schema generieren, d.h. ich erstelle die Tabellen nicht per hand).

Wenn ich das eine Unique weg mache Funktionierts

caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Bedingung UNQ_ besteht bereits
Constraint UNQ_ already exists [90045-72] {stmnt 7566193 CREATE TABLE TAG (id INTEGER NOT NULL IDENTITY, VALUE VARCHAR(255) NOT NULL, CONSTRAINT UNQ_ UNIQUE (VALUE))} 
	
	
	
	





```
Die Entity Tag hat einen Unique Value und ich habe eine andere Entity die Damit getagged werden kann und einen weiteren Unique Value hat bzw haben soll (ManyToMany)

Das Problem scheint daran zu liegen dass JPA den gleichen Namen für beide Constraints verwendet.
Bisher habe ich aber keine Möglichkeit gefunden dem Constraint einen anderen Namen zu geben.

Ich hoffe das ganze war verständlich und vielleicht hat ja jemand eine Idee (hoffentlich)
```


----------



## Gelöschtes Mitglied 5909 (13. Okt 2008)

Ok ich habe die Lösung gefunden:

@Table(name="TAG", uniqueConstraints= {@UniqueConstraint(columnNames= {"VALUE"})})


Ich Frag mich nur wieso man dann in der Column Annotation unique auf true setzen kann... Meine Column hat und hatte einen Namen

Er hat jetzt UNQ_VALUE_INDEX_1 statt nur UNQ_ generiert.

Die Column sieht so aus: 

	@Column(name="VALUE")
	private String 			value;

vorher so

	@Column(name="VALUE", unique=true)
	private String 			value;

Und bei beiden habe ich den Constraint jetzt in die Table Annotation gepackt


----------

