【发布时间】:2013-06-05 22:27:38
【问题描述】:
我想创建 Hibernate SessionFactory/Session 而不生成 Java pojos 和 hbm.xml 文件,有什么方法可以做到吗?
是否有任何方法可以动态创建 pojo 或 hbm 文件,即动态创建,以便我们可以进一步创建 SessionFactory 来获取 Session 并进行查询?
我不想在系统上生成 pojos 或任何 hbm 文件,如果有人有任何想法,请与我分享。
【问题讨论】:
我想创建 Hibernate SessionFactory/Session 而不生成 Java pojos 和 hbm.xml 文件,有什么方法可以做到吗?
是否有任何方法可以动态创建 pojo 或 hbm 文件,即动态创建,以便我们可以进一步创建 SessionFactory 来获取 Session 并进行查询?
我不想在系统上生成 pojos 或任何 hbm 文件,如果有人有任何想法,请与我分享。
【问题讨论】:
恐怕这是不可能的。您可能必须依赖 JDBC 才能做到这一点。
在 .NET 等效项 (NHibernate) 中,您仍然可以在代码中进行映射(即没有 xml 文件) - 但 POCO 需要存在。这称为“流畅”配置,我怀疑是否有任何 Java 框架具有这种功能。
【讨论】:
hbm.xml文件了;但这不是 on the fly 配置。
根据您需要执行的操作,以下方法可能是一种解决方法。
您可以在运行时创建一个 hbm.xml 文件,使用满足您需要的任何内容并将该文件保存到“已知”的位置。然后您需要将该文件添加到用于设置您的SessionFactory 的Configuration。
Configuration hibConfiguration = new Configuration()
.addResource(<filepath to custom.hbm.xml>)
之后,您只需删除创建的文件并继续您正在做的事情。
我还没有尝试过,但我想这应该与使用预定义的 hbm.xml 并在运行时进行所有实例化没有什么不同。
不幸的是,我不知道有任何其他方法可以设置映射,而 hbm.xml 至少在短时间内不会命中光盘。
【讨论】: