NHibernate 是不是与 Hibernate 互操作?如果没有,是不是有适用于 Java 和 .NET 的框架?

Posted

技术标签:

【中文标题】NHibernate 是不是与 Hibernate 互操作?如果没有,是不是有适用于 Java 和 .NET 的框架?【英文标题】:Does NHibernate interoperate with Hibernate? If not is there a framework out there for both Java and .NET?NHibernate 是否与 Hibernate 互操作?如果没有,是否有适用于 Java 和 .NET 的框架? 【发布时间】:2009-10-26 11:11:41 【问题描述】:

说你有:

一个数据库 一堆 .NET Windows GUI 程序 一堆 Java Web 应用程序

您可以将 Hibernate 用于 Java 的东西,而将 NHibernate 用于 .NET 的东西 - 但是这两者会真正互操作还是它们会是完全不同的堆栈?

如果没有,那么是否有可以让 Java 和 .NET 共享业务逻辑的持久性框架?

【问题讨论】:

【参考方案1】:

我不能代表 Java 人,但从 .NET 方面来说,我相信映射文件可以共享(描述数据库和对象之间关系的 xml 文件)。

除此之外,您还想分享什么?你在思考业务逻辑吗?请进一步定义“共享逻辑”。

您可以让您的 Java 人员编写持久性代码并将其公开为 RESTful 服务,然后 .NET Windows GUI 程序员可以针对该代码编写代码……反之亦然。

最终不应该有太多的 Hibernate/nHibernate 代码,因为您的工作是不再需要编写如此多的数据访问代码。剩下的是与 (n)Hibernate 交互最少的应用程序逻辑,具体取决于您的语言。

【讨论】:

谢谢,是的,我的意思是业务逻辑。我希望避免使用 Web 服务,但我们拭目以待。谢谢。 映射文件真的可以共享吗?通常它们在 Visual Studio 中设置为“嵌入式资源”,因此嵌入在 .dll afaik 中 @Max:是的,除非您尝试从已部署的客户端共享映射文件(这没有意义),否则在开发人员级别它们只是源存储库中的文件,所以它们可以轻松共享。 @Tarquila:在 C# 和 Java 之间共享业务逻辑与 nHibernate 或 Hibernate 没有太大关系,因为它们应该与您的对象交谈,而不需要任何对 Hibernate 的引用。也就是说,共享此类逻辑的唯一简单方法是以某种方式将其从一种语言暴露给另一种语言,通常是 Web 服务或类似的东西。如果您能找到其他方法让 C# 和 Java 轻松交谈,请告诉我!【参考方案2】:

我相信不会。 nHibernate 以 Hibernate 作为参考,但它们实际上并不共享代码并且以不同的速度开发。你必须知道两者的局限性。

【讨论】:

以上是关于NHibernate 是不是与 Hibernate 互操作?如果没有,是不是有适用于 Java 和 .NET 的框架?的主要内容,如果未能解决你的问题,请参考以下文章

Nhibernate/Hibernate、查找表和对象设计

Nhibernate/Hibernate、查找表和对象设计

相当于NHibernate中Hibernate的@embeddable/EF的ComplexTypeConfiguration?

使用 NHibernate/Hibernate 将实体类型转换为子类型

Nhibernate/Hibernate 使用存儲過程 多參數設置

共享 nHibernate 和 hibernate 二级缓存