This has been asked a couple of times already. See e.g. Extra Update during Insert of Entity with JsonField@JdbcTypeCode(SqlTypes.JSON) property
Please compare the output of the FormatMapper.fromString( FormatMapper.toString() ) to see if the objects equal, since dirty checking is based on that.