hibernate中的实体和值类型

时间:2011-11-07 15:23:33

标签: hibernate

对象级别的实体和值类型之间有什么区别。我知道实体会有一个id但值不会,但为什么我们需要不同的方法来映射实体和值类型?

是否已完成,以便hibernate可以对值类型应用任何优化?

2 个答案:

答案 0 :(得分:13)

实体已经定义了持久化的表。因此,当您在实体A中有B实体列表时,不需要为Bs定义目标表:B已经定义了它。值类型没有任何关联表,因此实体A中List<String>的映射必须定义将用于存储此列表的表。

此外,根据定义,值类型总是由其包含的实体完全拥有。删除实体后,还会删除与此实体关联的所有字符串。实体不是这种情况:删除课程实体时,不会删除所有学生。

这些只是两个示例,表明必须定义不同的映射属性。

答案 1 :(得分:0)

实体类型的对象具有自己的标识,其中值类型的对象没有数据库标识,它属于实体。 值类型对象通过拥有实体来识别