java - 如何在 Java/Hibernate 中获取实体类的列名称字符串

标签 java spring hibernate spring-data-jpa

我有一个实体类:

    @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[] 中的列名称?

最佳答案

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

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

关于java - 如何在 Java/Hibernate 中获取实体类的列名称字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59972527/

相关文章:

java - HTTP 状态 405 – @DELETE 方法不允许使用该方法

java - Android:是否可以将图像上传到服务器内的文件夹中?

spring - 如何在 Spring RestTemplate 请求上设置 "Accept:" header ?

java - 无法使用hibernate保存子表数据

java - Hibernate Merge 不刷新集合并导致删除

java - 如何使用 Spring MVC 更新我当前的用户数据?

java - 从未从 Firebase 数据库检索到数据

java - 如何使用selenium webdriver java从标签内部获取文本?

spring - 使用 RabbitMQ 的 SimpMessagingTemplate.convertAndSend 工作速度很慢

查询方法中的 Spring Data 可选参数