Допустим, у меня есть 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
не вариант.