Map<MyEnum, String>
監査対象として宣言されたフィールドがあります。マップ内の要素の1つに変更が加えられると、enversは1つではなく、anADD
とaの2つの編集を生成します。これは、2つの編集があるため、監査テーブルに挿入しようとしたときに制約違反を意味します。同じリビジョンの単一エンティティの単一フィールドの場合。DEL
MOD
テーブルのキーの一部を作成することで問題を回避できると思いrevision_type
ます(エンティティごとにフィールドごとに各タイプを1回編集できます)が、それは醜いハックのようですが、それを追跡できなくなるという事実もあります最初に起こった、そしてそれがちょうど間違っているという事実。
ちなみに、フィールドは適切に永続化されています...失敗するのは監査レコードだけです。
フィールドの宣言:
@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);
Hibernatev3.5.6を使用しています。
これに関するバグレポートを見つけることができなかったので、私は何か間違ったことをしていると思っています...何かアイデアはありますか?