JPA中Set<UUID>属性用UUID转换器出现类型不匹配警告如何解决?
问题原因
- 你当前将针对单个
UUID类型的UuidConverter直接标注在Set<UUID>类型的实体属性上,JPA会默认判定你需要对整个Set集合做类型转换,因此触发了转换器类型与属性类型不匹配的警告。 - 实际运行正常是因为JPA最终识别到转换目标是集合内的单个元素,但属于注解标注位置不规范导致的误报。
修复方案
仅需调整@Convert注解的位置,将其放到@Column的converter属性中,明确指定转换器作用于集合内的每个元素即可,不需要修改转换器本身的代码:
@ElementCollection @CollectionTable(name = "entity_branch", joinColumns = @JoinColumn(name = "entity_id")) @Column(name = "branchId", converter = UuidConverter.class) private Set<UUID> branchId;
调整后即可直接消除该警告,原有功能逻辑不受任何影响。
内容的提问来源于stack exchange,提问作者christopher.online
相关产品推荐
相关产品推荐

