如何在<Date>不创建新表的情况下映射设置日期?


@Entity(name = "my_entity_name")
public class MyEntityName {
/* some normal fields */
private Set<Date> dates = new HashSet<>();
/* Getters and setters for all fields */
}

我想将这个日期集合保存为同一实体中的单列(因为json对我来说是可以的(。JPA对此有什么解决方案吗?请帮我…提前谢谢。

您可能应该使用String字段来实现此目的。集合主要用于映射@ManyToMany或@OneToMany

我通过在实体类的集合类型字段上使用@Converter(converter = MyCustomTypeConverter.class)得到了解决方案。

样本转换器将看起来像这个

public class MyCustomTypeConverter implements AttributeConverter<Set<Date>, String> {
private ObjectMapper mapper = new ObjectMapper();
@Override
public String convertToDatabaseColumn(Set<Date> attribute) {
//code to convert from collection field to string
}
@Override
public Set<Date> convertToEntityAttribute(String dbData) {
//code to convert from db-string field to collection field.
}
}

相关内容

最新更新