在Java应用程序和MySql之间进行通信时,我需要在Map和JSON字符串之间进行转换。我遇到了两个非常有希望的解决方案:AttributeConverter和UserType。

在选择一种解决方案而不是另一种解决方案之间是否有任何利弊?在所有条件都相等的情况下,AttributeConverter当然看起来确实简单得多。

最佳答案

AttributeConverter需要JPA 2.1(Hibernate 4.3+),但是如果有的话,这是一个更加干净的选择。自定义的UserType可能会在将来的Hibernate版本中中断,而AttributeConverter可能不会。

请确保在要转换的特定字段上指定@Convert批注,而不是设置autoApply,因为您不想转换所有Map或所有Strings。

还要确保您使用库来进行Map-String转换,而不是手工编码。

10-08 08:05