![](/img/trans.png)
[英]How to register custom String UserType when using JPA + Hibernate
[英]JPA/Hibernate: is it obvious to create UserType when using AttributeConverter on complex class?
我想繪制任意POJO類屬性的String
與AttributeConverter<SomeClass, String>
但是我得到這個:
警告:找不到所請求的Java類[SomeClass]的匹配類型描述符; 使用后備
這是否意味着AttributeConverter
是不夠的,我需要為每個復雜類編寫一個自定義UserType
,以便能夠將其轉換為String
並返回?
另一種解決方案需要@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日)開始,此警告更改為:
WARN org.hibernate.type.descriptor.java.JavaTypeDescriptorRegistry - HHH000481:遇到Java類型[類SomeClass],我們找不到JavaTypeDescriptor,但似乎沒有實現equals和/或hashCode。 執行涉及此Java類型的相等/臟檢查時,這可能會導致嚴重的性能問題。 考慮注冊自定義JavaTypeDescriptor或至少實現equals / hashCode。 所以,有這些解決方案:
要解決這個問題,只需確保你的類型實現equals和hashcode,並使用Immutable.class注釋它,以防它是不可變的。
定義pojo
@Named
實現轉換器
重寫getAsObject和getAsString方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.