您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么将AttributeConverter用于集合会导致HHH015007:静态元模型字段注入中的参数非法

为什么将AttributeConverter用于集合会导致HHH015007:静态元模型字段注入中的参数非法

您的映射是错误的,因为您尝试对奇异属性使用collection。根据JPA规范(请参见 6.2.1.1规范元模型 部分):

对于zclass声明的每个持久性具有集合值的属性X,其中元素类型zZ,元模型类必须包含如下声明:

public static volatile SetAttribute<X, Z> z;

但是,Hibernate所期待的,你会使用@ElementCollection@OneToMany@ManyToMany协会收集属性

我建议您对自定义类型使用一些包装器类:

public class StringSet {
  private Set<String> stringSet;
  // ...
}

public class StringSetConverter implements AttributeConverter<StringSet, String> {

    @Override
    public String convertToDatabaseColumn(StringSet stringSet) {
        // ...
    }

    @Override
    public StringSet convertToEntityAttribute(String dbString) {
       // ...
    }
}

@Column(name = "GRANTED_PRIVILEGES", nullable = false, length = 4000)
@Convert(converter = StringSetConverter.class)
private StringSet grantedPrivileges;
其他 2022/1/1 18:19:59 有817人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶