Как получить столбец Name String класса Entity в Java / Hibernate - PullRequest
1 голос
/ 29 января 2020

У меня есть класс сущностей:

    @Entity
    @Table(name = "MyTasks", uniqueConstraints = {
    @UniqueConstraint(columnNames = {"id"})
    public class MyTasks {
      @Id
      @Column(name = "id")
      private Integer id;

      @Column(name = "task_name")
      private String task_name;

      @Column(name = "task_data")
      private String task_data;
    }

Скажем, у меня есть экземпляр сущности путем вызова новых MyTasks (); Как я могу получить все имена столбцов этого класса сущностей, скажем, в массиве String []?

1 Ответ

0 голосов
/ 30 января 2020

Используйте отражение и передайте имя метода, для которого вы хотите столбец. Например:

    ArrayList<String> columnNames = new ArrayList<>();
    Method[] methods = someObjectOrClass.getMethods();
    for (Method method : methods) {
        // get the @Column annotation for the class
        Column col = method.getAnnotation(Column.class);
        if (col != null) {
            columnNames.add(method.getAnnotation(Column.class).name());
        }
    }
    columnNames.toArray();
...