如何以编程方式配置映射?

Posted

技术标签:

【中文标题】如何以编程方式配置映射?【英文标题】:How to configure mapping programmatically? 【发布时间】:2012-11-07 07:49:35 【问题描述】:

我们的 Hibernate 配置映射已在 java 中以编程方式实现,而不是 annotationXML 映射。

当上下文初始化时,我们在 Hibernate Mappings 实例中设置了一个映射类层次结构,例如:

Mappings mappings = configuration.createMappings();
mappings.addClass(PersistentClass instance);

现在,我面临的问题非常简单,但我没有找到如何为我们的实现添加它的示例。

让我们这么说

我们有 2 个表AB 具有多对一关系, A.type_id = B.id. 我想从 A 检索所有记录,条件如下: A.type_id = B.id and B.id = 4;

如何在我的映射对象中添加关联(多对一)。 org.hibernate.mapping.RootClass.

【问题讨论】:

问题标题和正文中描述的内容不同。正确 【参考方案1】:

这个问题很老,但也许答案对其他人有帮助。

这个话题很复杂,在这里无法回答。不幸的是,Hibernate 文档没有包含很多信息,甚至源代码本身也根本没有记录。

这篇博文http://portofino.manydesigns.com/en/blog/configuring-hibernate-programmatically(及其第二部分)概述了如何以编程方式创建映射。

【讨论】:

【参考方案2】:

查看here的答案

还请注意,.addclass 并不像您想象的那么容易。您需要一个 cfg.xml 和 hbm 文件组合。

【讨论】:

使用 Configuration#addAnnotatedClass() 删除 xml 文件。

以上是关于如何以编程方式配置映射?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式添加 servlet 过滤器?

如何以编程方式更改端点的身份配置?

OSX:以编程方式重新映射 Caps Lock 的功能(通过系统偏好设置)?

java 以编程方式检索有关友好URL映射的信息

如何以编程方式创建 RAM 磁盘?

如何以编程方式配置过滤器链?