Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using unique constraint on Hibernate JPA2

Tags:

How can I implement my unique constraints on the hibernate POJO's? assuming the database doesn't contain any.

I have seen the unique attribute in @Column() annotation but I couldn't get it to work?
What if I want to apply this constraint to more than one column?

like image 724
Feras Odeh Avatar asked Dec 28 '10 12:12

Feras Odeh


2 Answers

You can declare unique constraints using the @Table(uniqueConstraints = ...) annotation in your class

@Entity @Table(uniqueConstraints=            @UniqueConstraint(columnNames = {"surname", "name"}))  public class SomeEntity {     ... } 
like image 109
Hons Avatar answered Sep 18 '22 13:09

Hons


Bascially, you cannot implement unique constraint without database support.

@UniqueConstraint and unique attribute of @Column are instructions for schema generation tool to generate the corresponsing constraints, they don't implement constraints itself.

You can do some kind of manual checking before inserting new entities, but in this case you should be aware of possible problems with concurrent transactions.

Therefore applying constraints in the database is the preferred choice.

like image 24
axtavt Avatar answered Sep 18 '22 13:09

axtavt