Hibernate @UniqueConstraint e @Id

4 respostas
D

Alguem sabe como faz para setar o nome da @UniqueConstraint, ou seja, o nome que irá constar no banco de dados quando criar a Constraint?
Mesma coisa para a chave primária…

@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "cdPais" }))

Com o código acima no banco de dados o nome da constraint fica
RDB$XXXX

E para a chave primaria:

@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

Estou usando Entity Class do Netbeans 5.5 com o Hibernate e Firebird 2.0

Se alguem tiver alguma idéia, obrigado…

4 Respostas

F

diegolenhardt,

Para a chave primária você pode fazer da seguinte maneira

@Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     @Column(name="nome_id")
     private Long id;

Espero ter ajudado.

D

Valeu, só que para a chave primária eu estava me referindo ao nome da chave primária e não ao nome da coluna da chave… mas valeu de qualquer forma,

F

diegolenhardt ,

Assim como com a constraint, não é possível modificar o nome das fk’s, pk’s.

:slight_smile:

A

É possível alterar o nome da chave estrangeira com a anotação “ForeignKey” do HibernateAnnotations. Por exemplo:

@org.hibernate.annotations.ForeignKey(name = "fk_classe_qualquer")
@ManyToOne(fetch = FetchType.EAGER, cascade = {} )
@JoinColumn(name="cq", nullable = false)
private ClasseQualquer cq;

Também estou procurando uma forma de definir o nome da Unique Constraint… Em último caso vou renomear manualmente o script gerado pelo método generateSchemaCreationScript do HibernateConfiguration…

Criado 19 de abril de 2007
Ultima resposta 31 de mar. de 2009
Respostas 4
Participantes 3