java - 如何在 Hibernate 中放置自定义类型
问题描述
我正在使用 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 (with AbstractTypeDescriptor) :看起来不错,但不确定这是否是正确的方法
- CompositeUserType :似乎不适合我的需求
有没有一种简单的方法可以做到这一点?
谢谢 !!
解决方案
如果我理解您只需要将对象转换为字符串并保存在数据库中,您可以使用 JPA 属性转换器,这样您就可以将复杂对象转换为字符串,例如某种 json 并将其保存在表中。要在您的系统上使用,您必须将字符串转换为一个对象。
试试这个:https ://thoughts-on-java.org/jpa-21-how-to-implement-type-converter/
推荐阅读
- discord.py - Discord.py - 在函数仍在运行时执行函数中的函数
- facebook-graph-api - Facebook API:无法安排视频
- flutter - 我在哪里可以保存 Android 和 IOS 上相机插件创建的视频文件?
- sql - SQL:如何使用多列分区计算百分比增加
- flutter - 仅使用 onTap 功能抖动不同的屏幕导航
- r - 如何使用 margins 包来评估因变量的不同值的边际影响
- wordpress - 我无法在 wordpress5.7 中安装 yoshizawa 主题
- linux - 散列页表与平面页表复杂性
- python - 从 Apache 调用 PHP 无法执行 Python 脚本
- rapidclipse - RapidClipse X 中的主细节