java - Hibernate ElementCollection/CollectionTable 使用现有字段作为审计实体中的 JoinColumn#referencedColumnName
问题描述
我们有以下数据结构:
@Audited(WithModifiedFlag = true)
@Entity
public class A {
private int id;
@Id
@DocumentId
@GeneratedValue( strategy = GenerationType.IDENTITY )
public int getId() {
return id;
}
private UUID uuid;
@Column( name = "uuid", columnDefinition = "BINARY(16)" )
public UUID getUuid() {
return uuid;
}
private String name;
@Column( name = "name" )
public String getName() {
return name;
}
private Set<String> relatedA = new HashSet<>();
@ElementCollection
@CollectionTable( name = "a_to_a",
joinColumns = @JoinColumn( name = "a_right", referencedColumnName = "uuid" ) )
@Column( name = "a_left" )
@NotAudited
public Set<String> getRelatedA() {
return relatedA;
}
}
问题是,这为我们提供了对 的 modified_flag 列的MappingException
声明。Duplicate property mapping
uuid
我假设JoinColumn
在这种情况下需要一个不存在的字段referencedColumnName
并自动尝试创建所需的审计字段?
@NotAudited
如果我们添加,整个事情都会起作用getUuid()
,我不太明白为什么。
解决方案
推荐阅读
- c# - 通过 NuGet 安装文件时如何更改文件的构建操作
- python - 实现 ResNet 编码器 U-Net。使用 Keras Concatenate 遇到问题
- c++ - 如何在 C++ 中将 char[] 写入二进制文件?
- javascript - 在页面上显示相对于用户位置的模态
- wordpress - Change CHECKOUT button text on shop page in WooCommerce?
- c++ - 如何重载 << 运算符使其仅影响类的成员?
- java - 使用分而治之颠倒顺序
- visual-studio-2019 - 如何在cefsharp webbrowser中保存登录信息和状态
- numpy - 如何使用 rust 的 ndarray 板条箱获取或创建等效于 numpy 的 amax 函数?
- r - 如何使用 ggplot 中的 facet 将 2 个类别与整个类别进行比较