【发布时间】:2011-02-10 19:27:08
【问题描述】:
是否可以通过 EclipseLink 将一个类设置为以特定方式序列化,而无需在每次使用时都对其进行标记?例如,假设我有一堂课:
class MyObj {
private int a;
private int b;
public MyObj(int a, int b) {
this.a = a;
this.b = b;
}
...
}
我希望将其作为字符串“a=1,b=2”存储在数据库的列中。我不希望它被序列化为一个 blob,而是真正最终成为 VARCHAR 列中的一个字符串。我可以使用转换器来做到这一点,但是我需要在使用该类的任何地方都有一个注释:
@Entity
class User {
@Column(name="first")
private MyObj one;
@Column(name="second")
private MyObj two;
...
}
上述方法不起作用,因为它不知道如何在没有注释的情况下转换类型 - 我希望能够有效地为该类型注册一个默认转换器。 (我尝试过使用 Serializable/Externalizable 没有成功,因为我最终尝试将一个字节数组插入到数据库中。)
这是否可能,无论是使用标准 JPA 还是 EclipseLink? Hibernate 似乎有类似@TypeDef 之类的东西,听起来它可能会完成这项工作,但我正在使用 EclipseLink。
【问题讨论】:
标签: jpa eclipselink converter