Можно ли установить класс для сериализации определенным образом с помощью 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.