JPA2复杂映射



我有三个实体PersonTaskNote,它们的行为如下:

  • 一个人可以有多个任务
  • 一项任务可以分配给多个人
  • 每个人都可以为一项任务附加多个注释

基于此,我有以下表格:

Person     Task    Person_Task    Note           Person_Task_Note
-------    ----    -----------    -----------    ----------------
id         id      id             id             id
name       name    person_id      description    person_task_id
task_id                       note_id

具有以下关系:

  • PersonTask之间使用Person_Task作为联接表的多对多
  • 使用Person_Task_Note作为联接表的Person_TaskNote之间的一对多

现在我正在尝试使用带有Hibernate的JPA2来映射这个结构。我的目标是在代码中只有三个具有以下选项的基本实体:

  • 获取一个人的所有任务(person.getTasks())
  • 获取个人任务的所有笔记(task.getNotes())

我知道我可以将每个表映射到一个类,然后用一个胖的JPA标准查询检索必要的信息。

但是,我希望避免(如果可能的话)为联接表创建类。

如果我使用@ManyToMany映射PersonTask之间的关系,我目前不知道如何进一步检索Note条目

只通过使用JPA注释而不为联接表编写类来进行这种映射是否可行?

不,这是不可能的。您必须映射所有的表,并将Person和Task之间的ManyToMany转换为两个OneToMany关联。

最新更新