Установка объекта с атрибутом @OneToOne работает, но не работает с объектом @ManyToMany - PullRequest
0 голосов
/ 27 октября 2019

это код моих двух классов:

@Entity
public class FicheMetier implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int Id;
    private String Name;
    @OneToOne
    private Employe employe;
    private String description;
    @ManyToOne(cascade = CascadeType.ALL)
    private MatriceComp matricecomp;

@Entity
public class MatriceComp implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int Id;
    @Enumerated(EnumType.STRING)
    @NotNull
    private Category category;
    private String Description;
    @ManyToMany(cascade = CascadeType.ALL)
    private List<Competance> competances;

и эта служба, которую я пытаюсь запустить:

@Override
public void affecterMat(MatriceComp matrice,FicheMetier ficheMetier) {

    FicheMetier us= em.find(FicheMetier.class,ficheMetier.getId());

    us.setMatricecomp(matrice.getId());

} 

, когда я пытаюсьчтобы установить атрибут @ManyToOne matricecomp с помощью matrice, я получаю исключение EJBTransactionRolledbackException. Но !! если изменить его на @OneToOne matricecomp и установить атрибут с помощью matrice, он будет работать

1 Ответ

0 голосов
/ 28 октября 2019

используйте этот способ

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "MatriceComp_Competance",
        joinColumns = { @JoinColumn(name = "id") },
        inverseJoinColumns = { @JoinColumn(name = "id") })
private List<Competance> MatriceCompCompetances= new ArrayList<Competance>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...