Hibernate @OneToMany在MariaDB与PostgreSQL中的输出差异问题
Hibernate @OneToMany关联在MariaDB下返回空数组,但PostgreSQL正常的异常排查
现象描述
- 环境:Docker部署的最新版PostgreSQL和MariaDB容器,搭配对应最新JDBC驱动
- 实体关系:使用Hibernate的
@OneToMany/@ManyToOne双向关联 - 异常情况:
- PostgreSQL驱动下,持久化后调用
parent.getChildren()能正常获取子实体 - MariaDB驱动下,已确认Child表的外键字段已正确填充父UUID,但调用
parent.getChildren()返回空数组
- PostgreSQL驱动下,持久化后调用
实体代码
Parent实体:
@Entity @Data //(lombok) public class Parent { @Id @Column(nullable = false, updatable = false, columnDefinition = "uuid") @GeneratedValue(strategy = GenerationType.AUTO) UUID id; ... @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.LAZY) List<Child> children = new ArrayList<>() }
Child实体:
@Entity @Data //(lombok) public class Child { @Id @Column(nullable = false, updatable = false, columnDefinition = "uuid") @GeneratedValue(strategy = GenerationType.AUTO) UUID id; ... @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(nullable = false) Parent parent; }
已确认信息
- Child表中对应外键字段已正确存储父实体的UUID值
- 数据库连接配置正确,其他CRUD操作均正常
请求帮助
恳请确认该现象是否普遍存在,或提供可行的排查方向/解决方法。
内容的提问来源于stack exchange,提问作者Snarkles
相关产品推荐
相关产品推荐

