【发布时间】:2016-06-23 14:33:11
【问题描述】:
对象级别的实体和值类型有什么区别。我知道实体将有一个 id 但值不会,但为什么我们需要不同的方法来映射实体与值类型?
这样做是为了让 hibernate 可以对值类型应用任何优化吗?
【问题讨论】:
标签: hibernate
对象级别的实体和值类型有什么区别。我知道实体将有一个 id 但值不会,但为什么我们需要不同的方法来映射实体与值类型?
这样做是为了让 hibernate 可以对值类型应用任何优化吗?
【问题讨论】:
标签: hibernate
一个实体已经定义了它所在的表。因此,当您在实体 A 中有 B 实体的列表时,无需为 B 定义目标表:B 已经定义了它。值类型没有任何关联的表,因此实体 A 中 List<String> 的映射必须定义将使用哪个表来存储此列表。
此外,根据定义,值类型始终完全由其包含实体拥有。删除实体后,还会删除与该实体关联的所有字符串。这不是实体的情况:当您删除课程实体时,您不会删除其所有学生。
这只是两个示例,表明必须定义不同的映射属性。
【讨论】:
实体类型的对象有自己的身份,而值类型的对象没有数据库身份,它属于一个实体。 值类型对象通过拥有实体标识
【讨论】: