流畅的NHibernate自动映射 - 如何创建多对多关系表?

时间:2009-10-26 08:25:34

标签: fluent-nhibernate many-to-many automapping

只是想知道是否有人知道是否有办法使用某些属性自动创建多对多关系表?无需创建表,或将类映射为该关系表。

如果我添加属性[ManyToMany(3,Class =“DeploymentListUsers”)],我会收到一个错误,即此类未映射到数据库。

  

NHibernate.MappingException:An   来自表用户的关联   指未映射的类:

我不想自己定义类,也不想事先在DB中创建表。

在JAVA中似乎有可能,流畅的NHibernate是完全实现的hibernate和JPA注释版本吗?

http://www.hiberbook.com/HiberBookWeb/learn.jsp?tutorial=19mappingmanytomanyrelationships

谢谢, 伊泰

3 个答案:

答案 0 :(得分:0)

如果指定了一个类,则必须确保它也存在。 NHibernate不会为你创建一个类。但是,如果您的多对多表只包含部署表的外键和用户表的外键,则不需要这样的类。如果要存储关于关系的其他事实,则只需要一个单独的多对多映射类。

据我所知,在你的情况下你只需要创建多对多表(你可以使用NHibernate的SchemaExport()来生成CREATE TABLE语句,因此有一些自动化)并告诉NHibernate如何映射到它。与你不同,我不使用映射属性,因此我不知道如何使用它们进行映射,但它可能非常简单。

答案 1 :(得分:0)

NHibernate现在支持JPA(在.NET平台上称为NPersistence或NPA),包括JPA注释。 这是指定关系的最佳方式,并且您的代码也可以移植到其他供应商。 看看这个: www.npersistence.com

答案 2 :(得分:0)

我对类似问题的回答可能有助于您:https://stackoverflow.com/a/12198533/185200

我最终扩展了多对多自动化步骤,以支持使用自定义属性修饰的属性。