首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring + Hibernate动态映射

Spring + Hibernate动态映射
EN

Stack Overflow用户
提问于 2009-05-24 18:33:16
回答 1查看 2K关注 0票数 3

很抱歉,如果这是一个转发,我找不到搜索词找到一个类似的问题。

我所使用的应用程序支持可以在运行时加载或卸载的插件。有几个API挂钩,允许这些插件,除其他外,注册更丰富的对象,而不是那些提供的盒子。当一个插件被激活并注册一个新的域对象时,我需要提醒hibernate注意新的对象(以及当插件被停用时删除该对象)。我们所有的对象都被标记为JPA / Hibernate注释。

系统类

代码语言:javascript
复制
@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类加载器中找到)

代码语言:javascript
复制
@Entity
@DiscriminatorValue("LDAP_USER")
public class LdapUser extends User {
    protected boolean active;

    ...
}

插件入口点API钩子

代码语言:javascript
复制
public void activate() {
    UserManager.getInstance().registerType(LdapUser.class);
}

public void deactivate() {
    UserManager.getInstance().unregisterType(LdapUser.class);
}

我知道hybernate通过一些API支持映射的配置,但我也知道,当存在活动会话时,这可能会产生一些严重的影响。

因此,我的问题是:当Spring管理我的会话时,我如何重新配置和增强当前的映射配置“在途”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-24 18:53:36

如果不需要保留以前的会话数据,可以使用新的配置和新的类列表来销毁或重新创建SessionFactory。对我来说,改变会话工厂中间应用程序的配置似乎不太可能,但也许有更好的Hibernate-Fu的人可以证明我错了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/904390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档