【发布时间】:2025-12-25 00:50:07
【问题描述】:
JPA 2.1 引入了一个不错的新功能 Attribute Converter - 请参阅文章,例如这里:http://www.thoughts-on-java.org/jpa-21-how-to-implement-type-converter/
它允许您拥有某种类型的属性并将其作为其他内容存储在数据库列中。例如。您有一个字段颜色为java.awt.Color 类型的实体,但您希望将其作为String 存储在数据库中,例如RED 或WHITE。
@Entity
class Tag {
String name;
java.awt.Color color; // I want it to be stored as a different type
}
有没有办法在 JPA 中获得类似的结果?我想为 not enum 的类型执行此操作。
我们不区分业务领域层和@Entity 类。当然,如果它们之间存在某种映射,我可以想象许多可行的解决方案。我正在寻找的是一种解决方案,我们在业务领域层中直接使用@Entity 类本身。
【问题讨论】:
-
在我之前工作的系统中,他们每次使用前都会序列化类和反序列化字段。
-
@user902383,你能说得更具体点吗?我直接使用
@Entity类作为域类。如果域类与@Entity类不同,我可以想象一百万种解决方案。 -
依赖于实现。有些人早在那时就有“类型转换器”。你没有提到你的实现是什么
-
@NeilStockton,我更喜欢与实现无关的解决方案。
标签: java jakarta-ee jpa jpa-2.0