配置hibernate多個字段XML與註解方式的組合唯一約束

.hbm.xml文件配置:
數據庫多列唯一:
1、 XML中多個< column >同時配置了unique-key=“true”,那麼在數據庫表中對應的N個字段會組成“組合唯一約束”,意思就是把這N個字段看作是一個整體,每行數據中那N個字段就是個整體,在該表中是唯一的,其他行數據不能與這行數據的那個整體完全相同。(廢話有點多,主要寫給新手看的)
數據庫單列唯一:
2、XML中多個< column >配置了 unique=“true”,表示每個< column >各自是唯一約束。

實體類映射配置:
關鍵:下面的屬性就是實現配置組合唯一約束
uniqueConstraints = {@UniqueConstraint(columnNames={“my1”,”my2”})}

@Entity
@Table(uniqueConstraints = {@UniqueConstraint(columnNames={"my1","my2"})})
public class Test {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    @Column(name="my1")
    private int mynum1;
    @Column(name="my2")
    private int mynum2;
    //省略封裝等
}

經測試:控制檯輸出sql語句中有“ unique (mynum1, mynum2)) ”,證明是對噠、

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章