[英]Hibernate: How to map java.util.Map with java.util.Set as a value with LocalDate inside?
使用注释正确映射 object 时遇到问题:
@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;
}
想要的结果:
root_entity
:
柱子 |
---|
ID |
day_types_id |
day_types
:
柱子 |
---|
ID |
姓名 |
days_list
:
柱子 |
---|
ID |
localdate_in_typestamp |
day_types_to_days_list
:
柱子 |
---|
day_type_id |
day_list_id |
您需要一个DayTypeEntity
,它看起来类似于以下内容:
@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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.