Java 如何在不创建新表的情况下映射设置日期?
我想将这个日期集合保存为一列,因为json对我来说在同一个实体中是可以的。JPA中有什么解决方案吗?请帮帮我。。。提前感谢。您可能应该使用字符串字段。Java 如何在不创建新表的情况下映射设置日期?,java,hibernate,spring-boot,jpa,Java,Hibernate,Spring Boot,Jpa,我想将这个日期集合保存为一列,因为json对我来说在同一个实体中是可以的。JPA中有什么解决方案吗?请帮帮我。。。提前感谢。您可能应该使用字符串字段。 集合主要用于映射@ManyToMany或@OneToMany我通过在实体类的集合类型字段上使用@Converterconverter=MyCustomTypeConverter.class获得了解决方案 示例转换器将如下所示 @Entity(name = "my_entity_name") public class MyEntityName {
集合主要用于映射@ManyToMany或@OneToMany我通过在实体类的集合类型字段上使用@Converterconverter=MyCustomTypeConverter.class获得了解决方案 示例转换器将如下所示
@Entity(name = "my_entity_name")
public class MyEntityName {
/* some normal fields */
private Set<Date> dates = new HashSet<>();
/* Getters and setters for all fields */
}
你是说Set还是Set应该被字符串字段替换?我建议使用私有字符串日期。但总的来说,它看起来有点奇怪。可能如果你给任务添加了一些上下文,例如你有什么类型的类,为什么需要一组日期,我的答案可能不正确。
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.
}
}