使用@OneToOne属性设置对象,但不适用于@ManyToMany对象

问题描述 投票:0回答:1

这是我两堂课的代码:

@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时,我得到EJBTransactionRolledbackException。但是!如果将其更改为@OneToOne matricecomp,并且我使用matrice设置了该属性,那么它会起作用]

这是我的两个类的代码:@Entity公共类FicheMetier实现了Serializable {private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = ...

java jpa ejb
1个回答
0
投票

使用这种方式

© www.soinside.com 2019 - 2024. All rights reserved.