You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring JPA实体List<String>映射PostgreSQL数组不生效报错如何解决?

问题原因

Hibernate默认无法直接映射java.util.List类型的基础类型集合字段,需要通过专门的注解声明集合映射规则。

解决方案

给favFoods字段添加@ElementCollection注解即可解决问题,修改后的实体类如下:

@Entity
@Data
public class Cat {
  @Id
  private String catId;
  private String catName;

  @ElementCollection
  private List<String> favFoods;
}

如果需要自定义存储集合数据的关联表配置,可搭配@CollectionTable注解使用:

@ElementCollection
// 自定义关联表名、外键字段名
@CollectionTable(name = "cat_favorite_foods", joinColumns = @JoinColumn(name = "cat_id"))
// 自定义存储食物名称的字段名
@Column(name = "food_name")
private List<String> favFoods;

配置后Hibernate会自动生成主表cat和关联表cat_favorite_foods,通过外键关联存储集合数据,无需额外手动建表。

内容的提问来源于stack exchange,提问作者Linus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:06:04