在Java应用程序和MySql之间进行通信时,我需要在Map和JSON字符串之间进行转换。我遇到了两个非常有希望的解决方案:AttributeConverter和UserType。
在选择一种解决方案而不是另一种解决方案之间是否有任何利弊?在所有条件都相等的情况下,AttributeConverter当然看起来确实简单得多。
最佳答案
AttributeConverter
需要JPA 2.1(Hibernate 4.3+),但是如果有的话,这是一个更加干净的选择。自定义的UserType可能会在将来的Hibernate版本中中断,而AttributeConverter可能不会。
请确保在要转换的特定字段上指定@Convert
批注,而不是设置autoApply
,因为您不想转换所有Map或所有Strings。
还要确保您使用库来进行Map-String转换,而不是手工编码。