有没有办法找出
java.lang.Class
那是
@Entity(name = "X")?
换句话说,使用实体名称来获取实体的类名,当然在运行时:)
答案 0 :(得分:4)
MetaModel#getEntities()
提供所有已注册的@Entity
。它返回List<EntityType<?>>
,其中EntityType
有一个代表@Entity(name)
的{{3}}方法和一个代表相关@Entity
类的getName()
。 MetaModel
实例由getJavaType()
提供。
换句话说,这是实用方法风格的方法:
public static Class<?> getEntityClass(EntityManager entityManager, String entityName) {
for (EntityType<?> entity : entityManager.getMetamodel().getEntities()) {
if (entityName.equals(entity.getName())) {
return entity.getJavaType();
}
}
return null;
}
答案 1 :(得分:0)
我在JPA规范中提出了一个问题,即能够在4年前按实体名称加载实体,并且仍未对此事进行开发: https://github.com/javaee/jpa-spec/issues/85