hibernate - 在Hibernate中快速添加表和列?

标签 hibernate schema runtime

我目前正在使用Hibernate开发应用程序,我们希望能够即时(即在运行时)插入列和表,并继续使用该应用程序而不必重新启动它。我们目前正在建立实体,但尚未使用它们。我们有旧的C代码(有一天要迁移到Java),该代码托管我们的业务逻辑,并通过JNI调用Java / Hibernate从数据库中获取记录。
在阅读了几个线程(请参阅下面的链接)和休眠3.6参考之后,我仍然有一些问题:

1。
如果我将SchemaUpdate嵌入到我的应用程序中,如此处所述:
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/toolsetguide.html#toolsetguide-s1-6
然后,即使我不使用实体,也是否必须重新创建SessionFactory(这是一项昂贵的操作)(当前情况;但是将来当然会改变)?然后,旧的会话将无效,即我是否必须将已经在内存中并由该会话维护的实体迁移到新会话?这有可能吗?
Hibernate是否在ORM之外维护有关架构实体的信息?如此处所建议的,(会话,即第一级)缓存无效是不够的:
changes to the schema while hibernate is running

2。
如何更改列?
我猜它仍然像@Bozho写道:“ A,休眠无法更改列。”?
Hibernate to update table schema

到目前为止,这是我的问题,谢谢您的帮助。

我已阅读更多参考资料:


使用Hibernate管理未映射的表
http://blog.codehangover.com/536/
Update database schema with hibernate
非常接近我的问题,提到了辅助数据库对象:
Enhance Hibernate Database Schema?
辅助数据库对象:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-database-object
http://www.liquibase.org/
http://www.alittlemadness.com/2006/08/28/incremental-schema-upgrades-using-hibernate/

最佳答案

是的,关于infoq about adding fields dynamically有一篇很好的文章。

关于hibernate - 在Hibernate中快速添加表和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6809616/

相关文章:

java - Hibernate集合持久化

java - hibernate 标准顺序不起作用

.net - 在 SpecFlow 生成的文件中 : Runtime Version: 4. 0.30319.468 与 4.0.30319.239 - 它来自哪里?

java - 与应用程序打包在一起的最轻的数据库

java - Spring Boot 中 @oneToMany 双向映射的问题

sql - 如何检测 View 是否由扩展程序创建?

mysql "drop database"需要时间——为什么?

python - Plone - 覆盖 Zope 架构字段

Java Spring 在运行时添加或删除 @Component 是可能的吗?

C++ 中的运行时多态性