首页 > 解决方案 > 如何持久化 List 类型的属性> 在 JPA 中?

问题描述

持久化具有 List<List> 类型字段的实体的最聪明方法是什么?

@Entity

@Table(name = "Final_Feign_Client_Result") 公共类 FinalFCResultEntity {

@Id
@Column(name = "id")
@GeneratedValue(strategy = IDENTITY)
private Integer id;

@ElementCollection(targetClass = Object.class)
@CollectionTable(name = "Final_Feign_Client_Result_Columns")
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "final_feign_client_result_entity_id", nullable = false)
private Set<Object> values;

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public Set<Object> getValues() {
    return values;
}

public void setValues(Set<Object> values) {
    this.values = values;
}

我对列没有问题,但如果我尝试插入值,我会得到这个异常:

Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List, at table: final_feign_client_result_columns, for columns: [org.hibernate.mapping.Column(values)]

我该如何解决这个问题?

标签: listspring-bootentity

解决方案


嗨 guidop21 请添加

@ElementCollection(targetClass = Object.class)
@CollectionTable(name = "Final_Feign_Client_Result_Columns")
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "final_feign_client_result_entity_id", nullable = false)
@OneToMany
private List<List<<Object>> values;

推荐阅读