抱歉,如果这是转贴,我找不到找到类似问题的搜索词.
我正在研究的应用程序支持可以在运行时加载或卸载的插件.除了一些其他功能外,还有几个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管理会话时,如何在运行中重新配置和扩展当前的映射配置.
最佳答案
如果不需要保留以前的会话数据,则可以使用新的配置和新的类列表销毁/重新创建SessionFactory.在我看来,更改会话工厂中间应用程序的配置似乎不太可能,但是也许拥有更好Hibernate-Fu的人可以证明我错了.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。