尝试创建实体图时出现以下错误:
java.lang.IllegalArgumentException:无法在此 ManagedType [com.example.RelatedObject] 上找到具有给定名称 [myRelatedObject] 的属性
这是实体:
@Entity
@Data
@NoArgsConstructor
@NamedEntityGraph(name = "withRelatedObject",
attributeNodes = {
@NamedAttributeNode("myRelatedObject")
})
public class RelatedObject {
@Id
@GeneratedValue
int id;
@AnyMetaDef(name = "related",
idType = "integer",
metaType = "string",
metaValues = {
@MetaValue(value = "role", targetEntity = Role.class),
@MetaValue(value = "user", targetEntity = User.class)
})
@Any(metaDef = "related", metaColumn = @Column(name = "type"), fetch = FetchType.LAZY)
@JoinColumn(name = "related_object")
private BaseEntity myRelatedObject;
}
似乎实体图的 @Any 注释有问题,但我找不到关于这两者如何相互作用的一条信息。
有谁知道发生了什么?有没有办法通过@Any 使用实体图?
谢谢