Java 什么是对象/关系不匹配

Java 什么是对象/关系不匹配,java,hibernate,orm,Java,Hibernate,Orm,我是java的新手,读过关于对象关系映射的书。我在这个链接上发现了一个术语对象/关系不匹配 有人能用Java解释什么是对象/关系不匹配吗。 我也从中了解到了它,但无法正确地理解。用示例进行解释是很有价值的。ORM解决方案试图让面向对象的程序员忘记他们使用的是关系数据库,而只处理对象 从面向对象语言和SQL之间的区别开始。面向对象语言是过程性的;SQL是声明性的 对象是将状态和行为封装到单个软件组件中的类的实例。关系数据库表示遵循集合论的实体之间的关系 对象可以使用继承和组合。表可以连接在一起 我

我是java的新手,读过关于对象关系映射的书。我在这个链接上发现了一个术语对象/关系不匹配

有人能用Java解释什么是对象/关系不匹配吗。
我也从中了解到了它,但无法正确地理解。用示例进行解释是很有价值的。

ORM解决方案试图让面向对象的程序员忘记他们使用的是关系数据库,而只处理对象

从面向对象语言和SQL之间的区别开始。面向对象语言是过程性的;SQL是声明性的

对象是将状态和行为封装到单个软件组件中的类的实例。关系数据库表示遵循集合论的实体之间的关系

对象可以使用继承和组合。表可以连接在一起


我没有读Hibernate的文章,但这是我能想到的三个主要区别。看看它们是否是以一种与您产生共鸣的方式编写的。

ORM解决方案试图让面向对象的程序员忘记他们使用的是关系数据库,而只处理对象

从面向对象语言和SQL之间的区别开始。面向对象语言是过程性的;SQL是声明性的

对象是将状态和行为封装到单个软件组件中的类的实例。关系数据库表示遵循集合论的实体之间的关系

对象可以使用继承和组合。表可以连接在一起

我没有读Hibernate的文章,但这是我能想到的三个主要区别。看看它们是否是以一种与您产生共鸣的方式编写的。

Hibernate是一种ORM(对象关系映射)工具。其主要目的是将面向对象编程的概念(如类、继承和字段)转换为关系数据库中使用的概念(如表、行和列)

例如,类对应于数据库表,对象(类的实例)对应于数据库行,字段对应于数据库列

术语“对象/关系不匹配”指的是,没有明确的方法将所有概念从面向对象编程转换为关系数据库概念,反之亦然。Hibernate试图解决这个问题

例如,如何将继承转换为关系数据库概念?在关系数据库中没有继承这样的东西,因此必须发明某种方法来在数据库中表示这一点。Hibernate有不同的方法来实现这一点,例如,为类层次结构提供一个带有鉴别器列的表,以确定行映射到哪个子类,或者为每个子类提供一个表

同样,关系数据库中存在的一些概念也无法轻松转换为面向对象编程概念。

Hibernate是一种ORM(对象关系映射)工具。其主要目的是将面向对象编程的概念(如类、继承和字段)转换为关系数据库中使用的概念(如表、行和列)

例如,类对应于数据库表,对象(类的实例)对应于数据库行,字段对应于数据库列

术语“对象/关系不匹配”指的是,没有明确的方法将所有概念从面向对象编程转换为关系数据库概念,反之亦然。Hibernate试图解决这个问题

例如,如何将继承转换为关系数据库概念?在关系数据库中没有继承这样的东西,因此必须发明某种方法来在数据库中表示这一点。Hibernate有不同的方法来实现这一点,例如,为类层次结构提供一个带有鉴别器列的表,以确定行映射到哪个子类,或者为每个子类提供一个表


同样,关系数据库中也存在一些概念,这些概念很难转换为面向对象的编程概念。

可能重复的No不是重复的,因为在这个问题上,没有人讨论过对象-关系不匹配。我从那里读到了对象关系映射本身,但是我对没有人讨论过的对象关系不匹配感到困惑。可能的重复不是重复,因为在这个问题上没有人讨论过对象关系不匹配。我从那里读到了对象关系映射本身,但我对没有人在那里讨论过的对象关系不匹配感到困惑。表和类没有按您所暗示的方式1:1映射。对象组合表示单个对象可能需要多个表的联接来表示1:m和m:n关系。关系是以集合为基础的;对象不是。严格来说这不是真的。表和类没有按您所暗示的方式1:1映射。对象组合表示单个对象可能需要多个表的联接来表示1:m和m:n关系。关系是以集合为基础的;对象不是。