1

私は一対多の関係を持っています:

@Entity
@Table(name = "Users")
public class User {

    @Id
    @Column(name = "user_id", nullable = false)
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @Column(name = "login", nullable = false)
    private String login;

    @Column(name = "password", nullable = false)
    private String password;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "role_id", nullable = false)
    private Role role;

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "user", cascade = javax.persistence.CascadeType.ALL)
    private Set<Contacts> contacts = new HashSet<Contacts>();

Userそして、すべての連絡先でオブジェクトを削除しようとしています。私は使用しようとしました:

  1. cascade = javax.persistence.CascadeType.ALL
  2. cascade = javax.persistence.CascadeType.REMOVE

  3. @Cascade(CascadeType.DELETE)からorg.hibernate.annotations

  4. @Cascade(CascadeType.DELETE_ORPHAN)からorg.hibernate.annotations

しかし、何も役に立ちませんでした。私はいつも例外を受け取ります:

org.hibernate.util.JDBCExceptionReporter - 親行を削除または更新できません: 外部キー制約が失敗します ( contactmanager. contact, CONSTRAINT contact_ibfk_1FOREIGN KEY ( user_id) REFERENCES

ユーザーを削除するUPD コードは次のとおりです。

@Transactional
public void removeUser(User user) {
    sessionFactory.getCurrentSession().delete(user);
}

どんな助けにも感謝します!ありがとう。

4

1 に答える 1