Unique Constraint Over Multiple Columns
HibernatePostgresqlSeamHibernate MappingSeam2Hibernate Problem Overview
I am using SEAM 2/Hibernate along with PostgreSQL 9 database. I have the following table
Active Band
===========
active_band_id serial
active_band_user text
active_band_date timestamp
active_band_process integer
I would like to add a constraint that ensures each new entry has a unique combination of active_band_user and active_band_date.
There could potentially be many attempted inserts per second so I need this to be as efficient as possible, is there a SEAM / hibernate annotation I can use in the entity mapping?
Thanks in advance
Hibernate Solutions
Solution 1 - Hibernate
There is no Hibernate annotation that checks uniqueness before insert/update. But there is annotation which will generate such a constraint to database if automatic database creation is used:
@Table(
name="ACTIVE_BAND",
uniqueConstraints=
@UniqueConstraint(columnNames={"active_band_user", "active_band_date"})
)
Solution 2 - Hibernate
In a more modern syntax, it would be :
@Table(
name="ACTIVE_BAND",
uniqueConstraints =
[UniqueConstraint(
columnNames = ["active_band_user", "active_band_date"]
)]
)