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;
私有字符串名称;
@元素集合;
私人设定日;
}
是的,我也有同样的想法,但我认为这还不足以解决这个问题。。。