gpt4 book ai didi

java - JPA/Hibernate:在复杂类上使用AttributeConverter时创建UserType是否明显?

转载 作者:行者123 更新时间:2023-12-03 21:43:54 28 4
gpt4 key购买 nike

我想将任意POJO类属性映射为带有StringAttributeConverter<SomeClass, String>,但是我得到了:


警告:找不到所请求的Java类[SomeClass]的匹配类型描述符;使用后备


这是否意味着AttributeConverter还不够,我需要为每个复杂的类编写一个自定义的UserType才能将其转换为String并返回?

Another solution需要@Embeddable。这里更合适吗?

@Entity
public class SomePersistentClass {
@Id
int id;

@Convert(converter = SomeClassConverter.class)
public SomeClass attribute;

//...
}

public class SomeClass {
//...
}

最佳答案

旧问题,但从Hibernate 5.2.7(2017年1月24日)开始,此警告更改为:


警告org.hibernate.type.descriptor.java.JavaTypeDescriptorRegistry-
HHH000481:我们可能遇到的Java类型[SomeClass类]
找不到JavaTypeDescriptor并且似乎未实现
等于和/或hashCode。这可能会导致明显的性能
执行与此Java相关的相等/脏检查时出现的问题
类型。考虑注册一个自定义JavaTypeDescriptor或至少注册
实现equals / hashCode。因此,有以下解决方案:


要解决此问题,只需确保您的类型实现了equals和hashcode,并在不可变的情况下使用Immutable.class对其进行了注释。

参见:JavaTypeDescriptorRegistry - Could not find matching type descriptor for requested Java class

关于java - JPA/Hibernate:在复杂类上使用AttributeConverter时创建UserType是否明显?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36566734/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com