很抱歉,如果这是一个转发,我找不到搜索词找到一个类似的问题。
我所使用的应用程序支持可以在运行时加载或卸载的插件。有几个API挂钩,允许这些插件,除其他外,注册更丰富的对象,而不是那些提供的盒子。当一个插件被激活并注册一个新的域对象时,我需要提醒hibernate注意新的对象(以及当插件被停用时删除该对象)。我们所有的对象都被标记为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管理我的会话时,我如何重新配置和增强当前的映射配置“在途”。
发布于 2009-05-24 18:53:36
如果不需要保留以前的会话数据,可以使用新的配置和新的类列表来销毁或重新创建SessionFactory。对我来说,改变会话工厂中间应用程序的配置似乎不太可能,但也许有更好的Hibernate-Fu的人可以证明我错了。
https://stackoverflow.com/questions/904390
复制相似问题