java - 一对一实体映射删除操作不起作用

标签 java hibernate jpa one-to-one

我有一个组成员表,该表以一对一的关系与用户表绑定(bind),当我尝试从组成员表中删除记录时,没有任何反应。

我的

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;
}

组成员

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;
}

用户

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));

没有错误,控制台中没有调试信息,只是不会从数据库中删除记录

最佳答案

由于某种原因,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);

关于java - 一对一实体映射删除操作不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56097478/

相关文章:

java - Spring Boot存储库不返回真实实体

java - 尝试使用 java spring boot、hibernate 和 thymeleaf 坚持 MAP,但在验证时遇到错误

java - 如何使用查询而不是带有 JPA 的 @JoinColumn 映射实体关联?

spring - 现有 GWT2 项目的 hibernate ejb3+Tomcat+Openejb 或 Spring+hibernate

java - 多个线程执行相同的方法(非同步)行为

java - 调查内存使用情况时,GC_FOR_ALLOC 是否更多 "serious"?

java - 使用 "mappedBy"与 super 类成员的多个 ManyToMany 关系

Java 程序读取文本文件并将其与用户输入进行比较

java - Ivy :publish work?怎么办

Spring/JTA/JPA DAO 集成测试不回滚?