为什么我们在Hibernate中使用@Embeddable

NaN*_*NaN 45 java hibernate jpa

有什么用的@Embedded,并@Embeddable在Hibernate?因为我在互联网上找到的每个例子都是在一个表中插入数据,并使用两个不同的类来完成.我的观点是,如果我使用单个表,那么我可以映射单个类中的所有列,那么为什么我应该使用不同的类.如果我们使用两个不同的表,那么就有one-to-oneone-to-manyhibernate的关系.

ank*_*kit 80

Hibernate中有两种类型的对象
1.值对象
2.实体

价值对象是不能孤立的对象.就拿Address,例如.如果你说地址,人们会问这是谁的地址.所以它不能孤立无援.

实体对象是那些谁可以独自站立像CollegeStudent.

因此,在值对象的情况下,首选方法是将它们嵌入到实体对象中.

要回答为什么我们要创建两个不同的类:首先,它是一个OOPS概念,你应该在类之间具有松耦合和高内聚.这意味着您应该仅为专门目的创建类.例如,您的Student班级应该只有与之相关的信息Student.

第二点是,通过创建不同的类,您可以提升可重用性.

当我们为我们使用的实体类定义值对象时@Embeddable.
当我们在实体类中使用值类型对象时我们使用@Embedded

  • 很好,很清楚!@ankit (2认同)
  • @ankit:非常简单而整洁 (2认同)

小智 5

假设我们有用@entity注释的员工表,并且员工有地址,所以在这里我不想创建两个表,即员工和地址,我只想创建一个表,即员工而不是地址表,那么我们需要在员工中声明地址实例并添加@embedable 注释位于 Address 类之上,因此最终我们在单个员工表中获得了员工表及其记录和地址记录