一尘不染

有人可以在休眠状态向我解释@MapsId吗?

hibernate

有人可以@MapsId在hibernate状态下向我解释吗?我很难理解它。

如果可以举一个例子来解释它,那就最棒了,并且它在哪种用例中最适用?


阅读 290

收藏
2020-06-20

共1个答案

一尘不染

这是Object DB的一个很好的解释。

指定ManyToOne或OneToOne关系属性,该属性提供EmbeddedId主键,EmbeddedId主键内的属性或父实体的简单主键的映射。value元素指定关系属性所对应的组合键中的属性。如果实体的主键与关系所引用的实体的主键具有相同的Java类型,则未指定value属性。

// parent entity has simple primary key

@Entity
public class Employee {
   @Id long empId;
   String name;
   ...
}

// dependent entity uses EmbeddedId for composite key

@Embeddable
public class DependentId {
   String name;
   long empid;   // corresponds to primary key type of Employee
}

@Entity
public class Dependent {
   @EmbeddedId DependentId id;
    ...
   @MapsId("empid")  //  maps the empid attribute of embedded id
   @ManyToOne Employee emp;
}

在此处阅读API文档

2020-06-20