【问题标题】:How to get the column Name String of an Entity class in Java/Hibernate如何在 Java/Hibernate 中获取实体类的列名称字符串
【发布时间】:2020-01-29 17:27:24
【问题描述】:

我有一个实体类:

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

比如说,我通过调用 new MyTasks(); 获得了一个实体的实例; 如何获取该实体类的所有列名,例如在数组 String[] 中?

【问题讨论】:

标签: java spring hibernate spring-data-jpa


【解决方案1】:

使用反射并传递您想要列的方法名称。例如:

    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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    相关资源
    最近更新 更多