java - 枚举的 JPA 映射集合

标签 java jpa jakarta-ee

在 JPA 中有没有办法在 Entity 类中映射一组枚举?或者唯一的解决方案是用另一个域类包装 Enum 并使用它来映射集合?

@Entity
public class Person {
    public enum InterestsEnum {Books, Sport, etc...  }
    //@???
    Collection<InterestsEnum> interests;
}

我正在使用 Hibernate JPA 实现,但当然更喜欢实现无关的解决方案。

最佳答案

使用 Hibernate 你可以做到

@ElementCollection(targetElement = InterestsEnum.class)
@JoinTable(name = "tblInterests", joinColumns = @JoinColumn(name = "personID"))
@Column(name = "interest", nullable = false)
@Enumerated(EnumType.STRING)
Collection<InterestsEnum> interests;

关于java - 枚举的 JPA 映射集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/416208/

相关文章:

java - 集成层如何与业务层交互?

Java 流按 List<Map<String, Object>> 分组到 Map<Integer, List<Integer>>

java - 需要 SWT 通知动画框(又名 toastr )

java - SOAP 测试客户端 Web 服务类

java - 使用 Jpa 和 Thymeleaf 在 Spring Boot 中重定向页面

java - 在 URL 中使用 JSESSIONID 时,会创建一个新 session

java - 滚动哈希溢出/负结果保护

Hibernate:重复的键值违反了集合的唯一约束

java - 由 : org. hibernate.MappingException : Unknown entity: New Object. JTA 引起

java - 如何从一个EJB调用另一个EJB?