gpt4 book ai didi

java - 如何在没有连接表的情况下在数据库中存储字符串列表?

转载 作者:行者123 更新时间:2023-12-01 11:16:10 24 4
gpt4 key购买 nike

我想存储 List<String>在 postgres 数据库中。

@ElementCollection
private List<String> products;

Hibernate 因此将创建一个连接表。有可能阻止这种情况吗?

一种解决方法是创建一个具有双向映射的显式类,如下所示:

@Entity
public class MainEntity {

@OneToMany(mappedBy = "main")
private List<Product> products;
}

@Entity
public class Product {
@Id
private long id;

@ManyToOne
private MainEntity main;

private String text;
}

但我觉得仅仅存储字符串列表有点过分了,不是吗?

最佳答案

如果您没有找到更好的方法,请尝试以下操作:

  1. 使用 @Transient 标记您的列表,以便它永远不会直接持久化。
  2. 准备额外的字段来持久化您的列表,其类型可以直接由 JPA“持久化”(连接、分隔的字符串似乎很自然)。
  3. 使用带有 @PostLoad 和 @PrePersist 注解的方法在这两个字段之间移动数据,在列表和字符串之间相互转换。

关于java - 如何在没有连接表的情况下在数据库中存储字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31803504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com