Операция удаления отображения сущности OneToOne не работает - PullRequest
0 голосов
/ 12 мая 2019

У меня есть таблица членов группы, которая связана с таблицей пользователей в отношении один к одному, когда я пытаюсь удалить запись из таблицы участников группы, ничего не происходит.

Мой Groups Стол

public class Groups implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotBlank
    @Column(unique = true)
    private String groupName;

    @OneToMany(fetch = FetchType.LAZY, orphanRemoval = false, mappedBy = "group")
    private List<GroupMembers> members;
}

Group Members Таблица

public class GroupMembers implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "group_id", nullable = false)
    private Groups group;

    @OneToOne
    @JoinColumn(name = "user_id", nullable = false)
    private User user;
}

Users Таблица

public class User implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String firstName;

    @OneToOne(fetch = FetchType.LAZY, mappedBy = "commutersInfo", cascade = CascadeType.ALL, orphanRemoval = true)
    private GroupMembers groupMembers;
}

При попытке удаления записи ничего не происходит

groupsMembersRepository.delete(groupsMembersRepository.findByUserEmail(email));

Нет ошибок, нет отладочной информации в консоли, просто не удаляется запись из базы данных

1 Ответ

0 голосов
/ 12 мая 2019

По какой-то причине JPA не выполняет мои команды удаления, когда я делаю это spring.jpa.show-sql=true, я вижу все запросы на выборку, а JPA не выполняет мой запрос на удаление, я не знаю почему, но мне хотелось бы получить какое-то объяснение.

В конце концов мне пришлось использовать это

@Modifying
    @Query(value = "DELETE FROM `group_members` WHERE `commuters_info_id` = ?1", nativeQuery = true)
    public void deleteByCommutersInfoEmail(long id);
...