Hibernate:如何将java.util.map与java.util.Set映射为包含LocalDate的值?

Hibernate:如何将java.util.map与java.util.Set映射为包含LocalDate的值?,java,hibernate,mapping,Java,Hibernate,Mapping,使用注释正确映射此类对象存在问题: @Entity @Table(name = "root_entity") public RootEntity { @Id @GeneratedValue @Column(name = "id") private Long id; // annotations here... DayType extends Enum private Map<DayType, Set&

使用注释正确映射此类对象存在问题:

@Entity
@Table(name = "root_entity")
public RootEntity {
    @Id
    @GeneratedValue
    @Column(name = "id")
    private Long id;

    // annotations here... DayType extends Enum
    private Map<DayType, Set<LocalDate>> days;
}
@实体
@表(name=“根实体”)
公共根实体{
@身份证
@生成值
@列(name=“id”)
私人长id;
//此处的批注…DayType扩展了枚举
私人地图日;
}
通缉结果:

根实体

柱 身份证件 日期类型id
您需要一个
daytypeententity
,它的外观如下所示:

@Entity
@Table(name = "root_entity")
public RootEntity {
    @Id
    @GeneratedValue
    @Column(name = "id")
    private Long id;

    @OneToMany
    @JoinColumn(name = "day_type_id", referencedColumnName = "day_types_id")
    @MapKeyColumn(name = "day_type_id")
    @MapKeyEnumerated(ORDINAL)
    private Map<DayType, DayTypeEntity> dayTypes;
}
@Entity
@Table(name = "day_types")
public DayTypeEntity {
    @Id
    @Column(name = "day_type_id")
    @Enumerated(ORDINAL)
    private DayType id;

    private String name;

    @ElementCollection;
    private Set<LocalDate> days;
}
@实体
@表(name=“根实体”)
公共根实体{
@身份证
@生成值
@列(name=“id”)
私人长id;
@独身癖
@JoinColumn(name=“day\u type\u id”,referencedColumnName=“day\u type\u id”)
@MapKeyColumn(name=“day\u type\u id”)
@MapKeyEnumerated(序数)
私有地图类型;
}
@实体
@表(name=“日期类型”)
公共日类型实体{
@身份证
@列(name=“day\u type\u id”)
@经点算(序数)
私有DayType id;
私有字符串名称;
@元素集合;
私人设定日;
}

是的,我也有同样的想法,但我认为这还不足以解决这个问题。。。