MappedSuperclass使用继承进行字段和代码重用。
此外,我们通过Hibernate提供的Embeddable功能来利用一些组合
@Embeddable
public class Department {
private long deptId;
private String name;
private String description;
}
@Entity
@Table(name="CSE_DEPT", schema="test")
public class CSEDepartment{
@Embedded
private Department dept;
}
@MappedSuperclass和@Embeddable之间的区别是什么,以及他们使用的适当情况。
答案 0 :(得分:1)
@Embeddable用于映射复合值类型。 @Embeddable类在我们的实体中用作字段类型之一。当你想模仿'Has A'的关系时,你可以使用它。
您在问题中说明的情况,可能不适合任何情况。因为MappedSuperClass和Embeddable都不能成为一个实体..(你已经在我认为应该是主键的部门类中离开了)。 对于您的情况,更好的是使用@OneToOne实体关联,因为cse部门将具有uniqu id名称和desc。你不想在一所大学里有2个csedepartment。