【问题标题】:How to persist a property of type List<List<Object>> in JPA?如何在 JPA 中保留 List<List<Object>> 类型的属性?
【发布时间】:2021-05-18 16:08:58
【问题描述】:

持久化具有 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)]

我该如何解决这个问题?

【问题讨论】:

    标签: list spring-boot entity


    【解决方案1】:

    你好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;
    

    【讨论】:

    • getter 和 setter 方法已经存在于类中,但不会改变
    • 我做了你建议的改变,但没有任何改变
    • 我会解决问题的,如果不是损坏,看看它
    • 现在出现这个异常: 原因:org.hibernate.MappingException:集合元素映射列数错误:com.nttdata.iot.simplemicroservice.database.entity.FinalFCResultEntity.values 类型:object
    • 添加列表> @OneToMany 注释
    猜你喜欢
    • 2018-04-02
    • 2021-04-09
    • 2010-12-30
    • 1970-01-01
    • 2021-09-11
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    相关资源
    最近更新 更多