按数据库表名获取实体类

时间:2013-01-30 03:35:09

标签: java jpa

是否可以从表名中获取Entity类名称?我正在使用JPA。

我有表名。我能够获得表的主键。现在我想从表中检索一个元组。我需要实体对象形式的元组或字符串数​​组的形式。

提前致谢。

1 个答案:

答案 0 :(得分:2)

从Java Persistence 2.0开始,您可以使用Metamodel来执行此操作:

public Class<?> getTypeForTableName(String tableName) {
  for (EntityType<?> entityType : getEntityManager().getMetamodel().getEntities()) {
    if (entityType.getJavaType().getAnnotation(Table.class).name().equals(tableName)) {
      return entityType.getJavaType();
    }
  }
  return null;
}