我有一个实体,我在其中放置一个组合的UniqueConstraint,并尝试使用" name"重命名此约束。属性:
@Entity
@Table(name = "ApplicatifTerminal", uniqueConstraints = @UniqueConstraint(name = "UniqueApplicatifTerminal", columnNames = {
"idApplicatif", "idTerminal" }))
public class ApplicatifTerminalDo {
........
但是,即使重新生成数据库,约束的名称也不会更改,并保留默认名称" idAttribute"。 我不知道这不是阻塞问题。但我想知道为什么这个属性名称不起作用。
PS:我使用的是hibernate 4.0.1
答案 0 :(得分:1)
我怀疑它应该被重命名:Hibernate不知道它与之前在另一个部署中生成的约束相同。您必须手动执行此操作。
但是Hibernate应该使用该名称创建一个唯一约束,如果ON TABLE GENERATION不存在。 实际上,它似乎是Hibernate 4.0.1中的一个错误(它仅在新表模式生成时创建第一列的名称约束),这在4.3.0中解决(使用正确的名称创建约束,即使该表已存在)。