@ManyToMany
の関係に2つのエンティティがあり、そのIDでリンクしたいと思っています。Hibernate @ManyToManyには2つの不要な列があります
User
は、多くのマネージャーがTask
で、Task
は1人または複数のマネージャーを持つことができます。かなり簡単です。
だから私は、次の属性を持つ私のエンティティを定義し:
@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
が4つのの列があります。のIDをUserEntity
、マネージャのID、TaskEntity
のID、および管理するタスクのIDを含む。しかし、あなたが見ることができるように、これらは同じ値のペアです。
私はちょうどUserEntity
のIDとTaskEntity
のIDだけを保持したいとHibernateに伝えることができますか?
は、それがユーザーによって管理されているので、 'mappedBy'子側 – solomkinmv
に子側は' TaskEntity'いる使用しようか?そして私は 'user_id'をマップする必要がありますか? – Christopher
それはあなたのビジネスロジックに依存しますが、私にとってあなたは正しいです – solomkinmv