Я создал обобщенный c 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;
Так что в моих подклассах я реализую дополнительные поля et c. Это работает очень хорошо, создает, заполняет и отображает содержимое в соответствии с ожиданиями ...
Теперь я хочу получить список всех моих сущностей. Это прекрасно работает, по крайней мере, для получения имен и имен классов.
entityManager.getMetamodel().getEntities()
На основе имени объекта я также могу загружать объекты на основе пользовательских параметров:
entityManager.createQuery("Select t from " + entityName + " t").getResultList();
Теперь есть две вещи, которые я не могу сделать:
(1) Доступ к свойствам моих классов c java, на самом деле я хочу получить доступ к "publi c stati c String EntityLabel" во время выполнения используя java -класс, возвращаемый функцией entityType.getJavaType (). На самом деле я хотел бы сделать что-то вроде этого:
((TableWithId) entityType.getJavaType()).EntityLabel
(2) Из соображений безопасности мне также нравится защищать систему, не позволяя пользователю делать запросы к другим объектам, которые не наследуются от TableWithId , Я хотел бы сделать что-то вроде:
entityType.getJavaType() instanceof TableWithId
Любая помощь приветствуется:)