Hibernate Двунаправленный ManyToMany удалить проблему

В моем проекте есть объекты для пользователей и компаний:

@Entity
@Table(name = "users")
public class UserDetails {

    @Id
    @GeneratedValue
    @Column(name = "user_id")
    private int id;

    @Column(name = "first_name")
    @NotEmpty
    @Size(min = 2, max = 20)
    private String firstName;

    @ManyToMany(cascade = CascadeType.REFRESH)
    @JoinTable(name = "users_companies",
            joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "company_id"))
    private Set userCompanies = new HashSet();

    //getters and setters of course...
}

@Entity
@Table(name = "companies")
public class CompanyDetails {
    @Id
    @GeneratedValue
    @Column(name = "company_id")
    private int id;

    @Column(name = "name")
    @NotEmpty
    @Size(min = 1, max = 255)
    private String name;

    @ManyToMany(mappedBy = "userCompanies")
    private Set companyUsers = new HashSet();

}

Я назначаю пользователя для рассматриваемой компании и затем пытаюсь удалить. Когда я удаляю пользователя, все в порядке - пользователь удален, запись из 'users_companies' таблица тоже удалена и компания остается (по необходимости). Но когда я пытаюсь удалить компанию, у меня возникает трассировка стека со следующей основной причиной:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`d_torianik/users_companies`, CONSTRAINT `FK447D806437A764EB` FOREIGN KEY (`company_id`) REFERENCES `companies` (`company_id`))

Не могли бы вы помочь мне решить эту проблему? Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос