带有枚举列表的Jpa存储库

时间:2018-05-23 11:27:52

标签: java spring spring-data-jpa

所以我想实现我的班级的Jpa存储库。

我的房间类型枚举:

public enum RoomType{
    BREUGHELZAAL("Breughel zaal"),
    CARDIJNZAAL("Cardijn zaal"),
    FEESTZAAL("Feest zaal"),
    KEUKEN("Keuken"),
    RECEPTIEZAAL("Receptie zaal"),
    KLEINEKEUKEN("Kleine keuken");

    private String roomType;

    RoomType(String roomType){
       this.roomType= roomType;
    }

    public String getRoomType(){
        return roomType;
    }
}

现在我不知道如何实现这一点。我在预订课程中需要一个Enum类型列表,我想它是这样的,但我不知道枚举类型的注释:

@OneToMany(cascade = CascadeType.ALL)
List<RoomType> chosenRooms

提前感谢您的帮助!!

1 个答案:

答案 0 :(得分:2)

您没有足够的Enum持久性配置,请尝试:

@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "RoomType", joinColumns = @JoinColumn(name = "id"))
@Enumerated(EnumType.STRING)
List<RoomType> chosenRooms

@ElementCollection - 定义基本类型或可嵌入类的实例的集合。 @CollectionTable - 指定用于映射基本或可嵌入类型集合的表(name - 集合表的名称,joinColumn - 集合表的外键列) 。
Enumerated - 指定持久属性或字段应作为枚举类型保留。