我创建了一个通用的Spring Entiy-Class“ TableWithId”,打算由其他类继承。
这是从基类中摘录的:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "__base_table")
public class TableWithId {
public static String EntityLabel = "All data";
@Id
@GeneratedValue
protected Long id;
因此在我的子类中,我正在实现其他字段等。这很好地工作,它按预期方式创建,填充和列出了内容...
现在,我希望能够获得所有实体的列表。这样做至少可以很好地获得名称和类名。
entityManager.getMetamodel().getEntities()
基于实体名称,我还可以根据用户参数加载实体:
entityManager.createQuery("Select t from " + entityName + " t").getResultList();
现在我不能做两件事:
(1)访问我的类的静态Java属性,我实际上想在运行时使用“ entityType.getJavaType()”返回的Java类访问“公共静态String EntityLabel”。实际上,我想做这样的事情:
((TableWithId) entityType.getJavaType()).EntityLabel
(2)出于安全原因,我也喜欢通过不允许用户对不继承自TableWithId的其他实体进行查询来保护系统。我想做类似的事情:
entityType.getJavaType() instanceof TableWithId
感谢您的帮助:)