如何获取@UniqueConstraint列名

时间:2018-11-07 12:26:56

标签: java hibernate

这是我的实体。

@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;

我想获取uniq列的名称。

我通常使用这种方法。

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

但是我想动态地命名。如何获取uniq列名?

2 个答案:

答案 0 :(得分:1)

我不知道我是否理解您的问题,但是如果您想通过反思得到答案,请尝试

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

答案 1 :(得分:1)

您应该这样做。

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