Как программно добавить конвертер атрибутов для определенных полей сущностей? - PullRequest
0 голосов
/ 14 февраля 2019

Допустим, у меня есть javax.persistence.AttributeConverter реализация с именем FooConverter, и я хочу применить этот конвертер для определенных полей сущностей.

Если бы я использовал подход аннотации, он выглядел бы так:

@Column
@Convert(converter = FooConverter.class)
private String barField;

При отображении в orm XML это будет выглядеть следующим образом:

<entity class="com.example.FooBarEntity">
  <convert converter="com.example.FooConverter" attribute-name="barField"/>
</entity>

Однако я хотел бы добавить этот конвертер программно во время настройки javax.persistence.EntityManagerFactory.

import org.hibernate.cfg.Configuration;
import org.springframework.orm.hibernate5.LocalSessionFactoryBuilder;

private EntityManagerFactory buildEntityManagerFactory() {
  Configuration config = new LocalSessionFactoryBuilder(dataSource);
  config.addAnnotatedClass(com.example.FooBarEntity.class);
  // I looking for something like config.addConverter(FooConverter, FooBarEntity, barField);
  return config.buildSessionFactory();
}

Есть config.addAttributeConverter метод, но, похоже, он только создает экземпляр конвертера и не привязывает его к определенному атрибуту сущности.Однако я хочу применить конвертер только для определенных полей String, поэтому autoApply не вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...