0
我有兩個實體在@ManyToMany
關係中,我希望通過它們的ID鏈接它們。休眠@ManyToMany有2個不必要的列
A User
可以是許多經理Task
s和Task
可以有一個或多個經理,非常簡單。
所以我定義我的實體具有以下屬性:
@Entity
@Table(name = "task")
public class TaskEntity {
@Id
@Column(unique = true, name="task_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "user_task")
private Set<UserEntity> validators = new HashSet<>(0);
// Getters & setters
}
而且
@Entity
@Table(name = "\"user\"")
public class UserEntity {
@Id
@Column(unique = true, name = "user_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "user_task")
private Set<TaskEntity> tasksToValidate = new HashSet<>(0);
// Getters & setters
}
Hibernate的自動生成我的表,以及由於某種原因user_task
有列:的的ID UserEntity
,管理者的ID,TaskEntity
的ID和要管理的任務的ID。但正如你所看到的,這些值是相同的值。
我該如何告訴Hibernate我只希望保留UserEntity
的ID和TaskEntity
的ID?
嘗試使用'mappedBy'對孩子邊 – solomkinmv
孩子一邊爲'TaskEntity'因爲它是由用戶管理的?我應該映射'user_id'? – Christopher
這取決於你的業務邏輯,但對我來說你是對的 – solomkinmv