2013-08-14 2 views
1

У меня есть следующая сущность, на которой я хотел бы, чтобы имя столбца было уникальным. По какой-то причине Hibernate не генерирует никаких уникальных ограничений при автогенерации таблицы. Любые идеи относительно того, почему Hibernate не применяет это уникальное ограничение? Я запускаю MySQL 5.5 и Hibernate 4.2.0 на JBoss EAP 6.1.Hibernate не создает уникальное ограничение

@Entity 
@Table(name = "Address", uniqueConstraints = @UniqueConstraint(columnNames = { "Name" })) 
public class AddressEntity { 

    private int id; 
    private String name; 
    private String streetAddress; 
    private String country; 
    private String city; 
    private String zip; 

    @Id 
    @GeneratedValue 
    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    @Column(name = "Name", unique = true, nullable = false) 
    public String getName() { 
     return name; 
    } 

    // getters and setters... 
} 

ответ

1

Попробуйте удалить uniqueConstraint из @Table.

+1

Нет, к сожалению это не работает. Я пробовал разные комбинации. Сначала с @Column (name = "Name", unique = true), затем с @UniqueConstraint (columnNames = {"Name"}), затем с обоими, а затем с @Column (name = "Name", unique = true, nullable = false). Ничто не работает. – user2664820

+0

Попробуйте поместить это на 'seters' или' variable' вместо 'getters'. – user2550754

+0

Безразлично. – user2664820

Смежные вопросы