我有一个声明为 a 的字段Map<MyEnum, String>
,该字段已被审核。当对映射中的一个元素进行更改时,会生成两个编辑, anADD
和 a DEL
,而不是单个MOD
,这反过来意味着尝试插入审计表时违反约束,因为有两个编辑对于同一修订中的单个实体中的单个字段。
我猜我可能可以通过制作revision_type
表的键的一部分来解决这个问题(这将允许每个实体的每个字段的每种类型进行一次编辑),但这似乎是一个丑陋的黑客,除了我忘记了哪个首先发生了,事实是它是错误的。
顺便说一句,该字段正在正确保存……只是审核记录失败了。
字段声明:
@ElementCollection
@CollectionTable(name = "configuration_property", joinColumns = @JoinColumn(name = "configuration_id"))
@MapKeyColumn(name = "property_name")
@Column(name = "property_value", columnDefinition = "longtext")
@MapKeyEnumerated(EnumType.STRING)
private Map<ConfigurationProperty, String> properties = new EnumMap<ConfigurationProperty, String>(ConfigurationProperty.class);
我正在使用休眠 v3.5.6。
我还没有找到任何关于此的错误报告,所以我认为我做错了什么......有什么想法吗?