How to get @UniqueConstraint column name

Viewed 46

This is my entity.

@Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "code" } })
@Entity
public class Product extends ExtendedModel {

    private static final long serialVersionUID = 8986161490957095179L;

    @Column(columnDefinition = "Ürün Kodu")
    private String code;

    private String name;

I want to get name of the uniq column.

I usually use this method.

columnName = myClass.getClass().getDeclaredField("code").getDeclaredAnnotation(Column.class)
                            .columnDefinition();

But i want to give name by dynamically. How to get uniq column name?

2 Answers

I don't know if i understand your question but if you want to get it by reflection try

myClass.getClass().getDeclaredAnnotation(Table.class).uniqueConstraints()[0].columnNames()[0]

You should this.

columnName = selectedModel.getClass()
                            .getDeclaredField(
                                    selectedModel.getClass().getDeclaredAnnotation(Table.class).uniqueConstraints()[0]
                                            .columnNames()[0])
                            .getDeclaredAnnotation(Column.class).columnDefinition();
Related