Извинения, если это репост, я не смог найти условия поиска, чтобы найти похожий вопрос.
Приложение, над которым я работаю, имеет поддержку плагинов, которые можно загружать или выгружать во время выполнения. Есть несколько хуков API, которые позволяют этим плагинам, среди прочего, регистрировать более богатые объекты, чем те, которые поставляются из коробки. Когда плагин активируется и регистрирует новый объект домена, мне нужно предупредить спящий режим для нового объекта (и удаления этого объекта, когда плагин деактивирован). Все наши объекты отмечены аннотациями JPA / Hibernate.
Класс системы
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="type", discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue("CORE")
public class User {
protected @Id @GeneratedValue int id;
protected String userName;
...
}
Класс плагина (находится в загрузчике классов JAR)
@Entity
@DiscriminatorValue("LDAP_USER")
public class LdapUser extends User {
protected boolean active;
...
}
Подключаемый модуль API точки входа в плагин
public void activate() {
UserManager.getInstance().registerType(LdapUser.class);
}
public void deactivate() {
UserManager.getInstance().unregisterType(LdapUser.class);
}
Я знаю, что Hybernate поддерживает настройку отображения через некоторые API, но я также знаю, что это может иметь серьезные последствия при активных сеансах.
Итак, мой вопрос: как я могу перенастроить и дополнить текущую конфигурацию отображения «в полете», когда Spring управляет моими сессиями.