【问题标题】:How to create an ENUM array column with JPA?如何使用 JPA 创建 ENUM 数组列?
【发布时间】:2021-12-13 16:42:20
【问题描述】:

我想在我的 PostgreSQL 数据库中有一个字符串数组,并在我的代码中将它们转换为一组枚举对象。这就是我所拥有的:

@ElementCollection(fetch = FetchType.EAGER, targetClass = CurrencyDto.class)
@Enumerated(EnumType.STRING)
private Set<CurrencyDto> currencyOptions;

但是,它尝试从另一个表中获取它,出现此错误relation "theme_config_currency_options" does not exist

我不希望 JPA 从另一个表中获取它。我的枚举对象的字符串表示应该在数组内的该列中。我的枚举 班级是CurrencyDto

public enum CurrencyDto {
    ALL, //Albania
    AMD, //Armenia
    AZN, //Azerbaijan
    BYN, //Belarus
    BAM, //Bosnia and Herzegovina
    BGN, //Bulgaria
    ...
}

怎样才能正确实现我想要的?

【问题讨论】:

    标签: java spring jpa orm


    【解决方案1】:

    首先,您需要添加完成这项工作所需的依赖项。 然后你应该为货币创建 DTO 类,

    @Entity
    public class Currency {
        @Id
        private int id;
        private String title;
    }
    
    
    public enum CurrencyName {
        C1, C2, C3, C4;
    }
    

    现在通过使用这个类,您可以设置货币名称并可以从数据库中获取数据。

    【讨论】:

    • 我真的必须为此创建一个货币表吗?请检查我在问题中的枚举类。我刚刚添加了它。
    • 是的,您将在哪里获得货币名称。
    • 我想在我的代码中命名货币。我不想将货币存储在数据库中。我的货币不会改变。
    猜你喜欢
    • 2019-02-26
    • 2012-03-20
    • 1970-01-01
    • 2021-09-19
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 2015-08-02
    相关资源
    最近更新 更多