【发布时间】:2019-12-09 22:25:12
【问题描述】:
我正在使用 Hibernate、JPA 和 Spring Boot。
我想保留一个“版本”类型的自定义对象。 “版本”是一个处理复杂的对象,但它在表中对应于一个简单的 VARCHAR 字段。我能够从 String 构造 Version 并从 Version 对象构造 String。
class MyEntity {
@Column("version_sw")
private Version version; <-- I would like to persist version as a String
}
我正在寻找创建休眠类型的不同方法:
- UserType :对我来说似乎有点矫枉过正,因为我的对象只映射到数据库中的一列。
- BasicType(使用 AbstractTypeDescriptor):看起来不错,但不确定这样做是否正确
- CompositeUserType : 似乎不适合我的需求
有没有一种简单的方法可以做到这一点?
谢谢!!
【问题讨论】:
-
我不知道这是否是“最佳实践”方法,但您可以将版本字段设置为字符串并将其映射到数据库。然后转到 Version 类并创建两个方法“fromString”和“toString”。并返回您的 MyEntity 类并将 getter、setter 写入版本字段。对于 setter 方法,使用 Version.fromString,对于 getter 方法,使用 Version.toString