在Java应用程序和MySql之间通信时,我需要在Map和JSON字符串之间进行转换。我遇到了两个非常有希望的解决方案: AttributeConverter和UserType。
选择一种解决方案而不是另一种解决方案有什么利弊?在所有被认为是平等的情况下,AttributeConverter确实看起来简单得多。
发布于 2016-09-14 23:34:35
AttributeConverter需要JPA2.1 (Hibernate 4.3+),但是如果它可用,它是一个更干净的选择。自定义UserType可能会与未来版本的Hibernate中断,而AttributeConverter可能不会。
请确保在要转换的特定字段上指定@Convert注释,而不是设置autoApply,因为您不希望转换所有映射或所有字符串。
还请确保在映射字符串转换时使用库,而不是手工编码。
发布于 2019-04-07 22:49:57
就比较这些方法而言,大多数情况下,AttributeConverter是一种更干净的解决方案。
与JPA版本的差异相比,还有另一个很大的缺点/差异值得注意:@Convert 和 @Id 属性不一起工作(您将得到反序列化错误)。如果您需要这样的功能,您将不得不求助于UserType。
https://stackoverflow.com/questions/37956375
复制相似问题