多列的唯一约束

时间:2012-08-14 15:40:08

标签: hibernate postgresql seam hibernate-mapping seam2

我正在使用SEAM 2 / Hibernate和PostgreSQL 9数据库。我有下表

Active Band
===========
active_band_id serial
active_band_user text
active_band_date timestamp
active_band_process integer

我想添加一个约束,确保每个新条目都有active_band_user和active_band_date的唯一组合。

每秒可能会有很多尝试插入,所以我需要尽可能高效,是否可以在实体映射中使用SEAM / hibernate注释?

提前致谢

2 个答案:

答案 0 :(得分:70)

没有Hibernate注释在插入/更新之前检查唯一性。但是如果使用自动数据库创建,则会有注释对数据库产生这样的约束:

 @Table(
    name="ACTIVE_BAND", 
    uniqueConstraints=
        @UniqueConstraint(columnNames={"active_band_user", "active_band_date"})
)

答案 1 :(得分:0)

在更现代的语法中,应该是:

@Table(
    name="ACTIVE_BAND", 
    uniqueConstraints =
        [UniqueConstraint(
                columnNames = ["active_band_user", "active_band_date"]
        )]
)