在jpa(> = 2.1)中,如何为使用@Id注释的属性创建AttributeConverter?
不幸的是,似乎Hibernate不允许在以下代码中使用它: org.hibernate.cfg.annotations.SimpleValueBinder#applyAttributeConverter
if ( property.isAnnotationPresent( Id.class ) ) {
LOG.debugf( "Skipping AttributeConverter checks for Id attribute [%s]", property.getName() );
return;
}
有没有办法绕过这个?
答案 0 :(得分:1)
刚刚找到了一个很好的解决方法,因为我遇到了同样的问题,因为Hibernate一直在使用@Convert序列化对象,除了...对于我在@Embeddable中使用它的那些
@Embeddable
public static class Key {
@Column(name = "ID", nullable = false)
@Convert(converter = MyObjectConverter.class)
private MyObject id;
//getter/setter
}
@EmbeddedId
private Key key;
答案 1 :(得分:0)
我发现您可以将UUID用作ID,然后允许使用转换器 Persisting UUID in PostgreSQL using JPA 奇怪的是您不能使用任何自定义Converter