ManyToMany
の関係を使用してオブジェクトを永続化するとエラーが発生しますが、この問題について多くの検索をしましたが、解決策が見つからない場合は、ここに私のコードは次のとおりです。JPA ManyToManyのエラー
Utilisateurエンティティ
public class Utilisateur implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(nullable = false)
private Integer id;
@Column(length = 2147483647)
private String nom;
private Integer theme;
@JoinTable(name = "utilisateur_prvilege", schema = "sch_admin", joinColumns = {
@JoinColumn(name = "privilege", referencedColumnName = "id")}, inverseJoinColumns = {
@JoinColumn(name = "utilisateur", referencedColumnName = "id")})
@ManyToMany(cascade = CascadeType.ALL)
private List<Privilege> privilegeList = new ArrayList<>();
..getters and setter..
}
特権エンティティ
public class Privilege implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column
private Integer id;
private Integer pane;
@Column(length = 2147483647)
private String description;
@ManyToMany(mappedBy = "privilegeList")
private List<Utilisateur> utilisateurList = new ArrayList<>();
..getters and setter..
}
cascadettypeプロパティを追加し、永続化するために価値を与える
@ManyToMany(mappedBy = "privilegeList")
private List<Utilisateur> utilisateurList = new ArrayList<>();
で新しいUtilisateur
public void create(Utilisateur utilisateur) {
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
em.persist(utilisateur);
em.getTransaction().commit();
} finally {
if (em != null) {
em.close();
}
}
}
ありがとうございます@プリムクマール、今の値は**特権**テーブルassossiation ** utilisateur_prvilege **ではなく、 ** id utilisateurとid特権**をassossiationテーブルに追加してください、これは私のオブジェクトですか? –
あなたはutilisateur_prvilegeに人口がまったく入らないことを意味しますか?個々のエンティティは永続化しています。 show sqlを有効にして生成されたSQL文を確認できます –
はい、utilisateur_prvilegeは空であり、特権の値は重複しています。 –