謝罪これが再ポストである場合、私は類似の質問を見つけるために検索用語を見つけることができませんでした。Spring + Hibernate Dynamic Mapping
私が取り組んでいるアプリケーションは、実行時にロードまたはアンロードできるプラグインをサポートしています。これらのプラグインは、とりわけ、より豊かなオブジェクトを登録し、その後に提供されるオブジェクトを登録できるようにする、いくつかのAPIフックがあります。プラグインがアクティブになり、新しいドメインオブジェクトを登録するとき、私は新しいオブジェクト(そしてプラグインが非アクティブ化されたときにそのオブジェクトの削除)に休止状態を警告する必要があります。すべてのオブジェクトは、JPA/Hibernateアノテーションでマークアップされています。 (JARクラスローダに見られる)
システムクラス
@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;
...
}
プラグインクラス
@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がセッションを管理しているときに、「飛行中」の現在のマッピング設定をどのように再構成し、拡張することができるのかです。
非常に興味深い質問 – dfa